フリーランスエンジニア→法人化した人の技術ブログ。フリーランス事情や会社の作り方、経営などについても徒然なるままに書いていきます。主な使用言語はRuby、JavaScript。

Permanent Til

javascript Ruby プログラミング

超速で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にアクセスする。

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にアクセスする

まとめ

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

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

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

参考

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


-javascript, Ruby, プログラミング

Copyright© Permanent Til , 2019 All Rights Reserved Powered by AFFINGER5.