超速でAPIサーバを作る2つの方法(Sinatra or Express)


用途

新しいフロントエンドFWを試すときのajaxサンドバッグを秒速で立てたいときに使います。

Sinatra

Rubyの薄いフレームワーク、sinatraを使ってみましょう。

今回の用途はあくまで「JSON応答を返すサーバを最速で作る」ため、Railsは使用していません。

1.プロジェクト作成

mkdir api-sinatra
cd api-sinatra
bundle init

2.Gemfileにsinatraを追加

# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

# gem "rails"

gem 'sinatra'

3.server.rb(名前は適当で良い)を記述

require 'sinatra'
require 'json'

get '/' do
  content_type :json
  result = {hello: "world!"}
  result.to_json
end

4.起動&確認

ruby server.rb

sinatraのデフォルトポートは4567なので、localhost:4567にアクセスする。

sinatraの入門書はKindle Unlimitedで無料で読むことができます。

Express

Expressはnode.jsベースで動くサーバーサイドJavaScriptのフレームワークです。

薄いフレームワークでありながらデファクトとなっており、PoC(仮説検証)から本番運用まで使えるフレームワークです。

1.プロジェクト構成作成

mkdir api-node
cd api-code
npm init #ウィザードが出るが適当にEnterを押していればOK
npm i express -s # Expressをインストール
touch app.js

2.app.jsを以下のように記述

const express = require('express')
const app = express()

app.get('/', (req, res) => res.send({hello: "World!"}))

app.listen(3000, () => console.log('Example app listening on port 3000!'))

3.起動&確認

node app.js

デフォルトは3000番ポートなので、localhost:3000にアクセスする

expressもKindle Unlimitedで無料で勉強できる書籍があるようです。こちらは周辺技術も取り上げており、かなり実践的な内容となっているようです。

まとめ

今回は、超速でシンプルなJSONを返すAPIサーバをRuby(Sinatra)、JavaScript(express)で実装してみました。

作成したSinatra環境とExpress環境をDockerファイル化してさらにポータビリティを高める記事も後日アップ予定です。

後編書きました =>超速でつくったAPIサーバをDocker化する(Express編)

参考

Sinatra公式: http://sinatrarb.com/
Express公式: http://expressjs.com/