概要 grapeのドキュメントをSwagger UIで使える形で自動生成します。 Swagger UIとは こんなんです。 APIとその説明を列挙し実際にパラメータを入力して叩くことができます。 超便利! install rails前提にしてますが、そうじゃなくてもいいかも。
While developing a rich client side web application or mobile app, we need RESTful JSON API which interacts with the front-end javascript framework. Here you may use backbone.js, ember.js or angular.js on the front-end side of application. Here we’ll be using Ruby on Rails on the back-end which will serve JSON API consumable by fron-end framework. If you look at the ruby toolbox you’ll see many AP
RailsでAPIを雑に書いていたんだけど, コントローラとかをどう書くとエラー処理しやすくなっていいかなーと考えていて, 個人的に考えがまとまったのでブログ書いた. ※9/1に追記書いた. 良いエラー処理について 個人的にAPIを書く上で(API書くに限らない気はするけど)どういうふうにエラー処理を行うと良いかなーと考えてみると コントローラ内では基本的に, ある関数の処理が失敗して, 次の処理が行えない場合はすべて例外を投げる 例外は各々のコントローラ内で例外のキャッチは行わず, すべてApplicationControllerなど, 親コントローラ内の1メソッドで完結させる かなーと思う. APIのエラー処理は, Envelopeにステータスコードとエラーメッセージを書いて, APIのフォーマットを統一するほうがクライアントが作りやすそうだし, またこのように処理することで, エラー
Grape では 1 ファイルに API をずらっと書けるけど、 規模が大きくなってくると見通しが悪くなるので、複数ファイルに分割したくなる。 Grape では API が他の API をマウントできるので、 その機能を使ってリソースごとにファイルを分割できる。 以下、サンプル。ヘルパーも別ファイルに切り出してみた。 posts.rb # coding: utf-8 module API class Posts < Grape::API resource :posts do desc "投稿をすべて取得" get do # posts はヘルパーメソッド posts end desc "投稿を1件取得" get ":id" do posts.find(params[:id]) end end end end helpers.rb # coding: utf-8 module API mod
Grape を利用すると Restful な WEB-API が簡単に作成できるらしいので試してみました。その際、実際の運用を視野にいれて、次のこともやってみました。 複数の API バージョン に対応する。 例:http://ドメイン/api/v1/.. http://ドメイン/api/v2/.. 1つのソースがファットにならないよう モデル毎にソースを分ける 。 まずは Grape の導入手順から説明します。 Grape の導入手順 前提 手元の OS:Mac OS X 10.9.5 (Mavericks) Ruby:2.1.2 Rails:4.1.1 Grape は結果、0.9.0 が入りました。 手順 適当な Rails プロジェクトを作成。
When adding a Grape API to an existing Rails application you have a few options for user authentication. Probably the simplest and most basic way to authenticate an API is by issuing API keys to your users. How it works…User submits their Username/Password to the API.API authenticates the user and returns an API Key.For all subsequent API requests, the user submits the key with their request. This
In this tutorial, I'll demonstrate how to protect the API with OAuth 2 protocol. The API is built with Grape, and mounted under Ruby on Rails. This tutorial was originally written in Chinese, so if you know Chinese please read this: OAuth 2.0 Tutorial: Grape API 整合 Doorkeeper. To protect the API with OAuth 2, we have to build the following things: Resource Owner - The role who can grant authorizat
前回のあらすじ API「いったいいつから認証が通っていると錯覚していた?」 今回のハイライト— ゆうなんとか@23~26東京 (@yuu_hara) 2013, 8月 13 なん…だと…? 誰得なニッチさですが(゚ε゚)キニシナイ!!! 前回の続きみたいな感じです。思ったよりもすぐに解決ができたので一応メモをば。 GrapeもSinatraみたいにbeforeとかhelperとかあるんだろうなーと思ったらあった デスマ覚悟したけど少ない変更ですんで助かりました— ゆうなんとか@23~26東京 (@yuu_hara) 2013, 8月 13 Sinatraにはすべてのリクエストの前に必ず実行されるbeforeというブロックを引数にとるメソッドがあります*1。 require 'sinatra' before do halt 404, 'お探しの嫁は見つかりませんでした。' end get '
Grapeをもう少し使ってみました。関連記事は↓ RailsのGrapeとJbuilderでAPI開発 - PILOG 基本形 # app/api/api.rb resource :items do get '/', jbuilder:'items' do @items = Item.all end end パラメータを受け取る 全てのItemではなく、idに該当するItemだけが欲しいとき。 resource :items do get '/:id', jbuilder:'item' do @item = Item.find_by_id(params[:id]) end end /api/items/1というエンドポイントでid=1のItemが得られます。 ネストする Item Entry というモデルがあって、Item has many Entriesな関連を持っている場合はリソースを
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く