移転しました http://please-sleep.cou929.nu/20130121.html
移転しました http://please-sleep.cou929.nu/20130121.html
Wantedly Engineer blogに本速習会資料を閲覧向けに再編しました! ぜひご覧いただけると幸いです! 本記事は、綺麗なAPI速習会@Wantedlyの資料として作成されたものです。 同時にこちらのコードも参照してください。 マイクロサービス 流行りのマイクロサービス、何がいいのか 各々自由な言語やArchitectureでサービスを立てられる 障害の影響が部分的 変化に強い 個別デプロイ etc... マイクロサービス化をすすめるにあたり、やりとりは全てAPIで行う 内部のAPIであっても外部に公開できるようなクオリティのAPIを作成し、それを元にサービスを作っていくことが重要 APIGatewayとBFF API Gateway Pattern 公式サイトより 「見た目はモノリシック、実装はマイクロサービス」 一箇所見に行けば全てのAPIを見つけられる 細かい権限管理も可
なるほど URLには複数形の名詞で具体的な名前をつけましょうね 大抵の人がおそらく使うであろうRESTful APIはGETメソッドだろうとのことでURLの名称は複数形の名詞にしておくのが自然。 ただし、複数のリソースを含んでしまうような名前は避けないとダメ。 それから、/itemsとか/assetsみたいな抽象的な名称も避けないといけない。/itemsというリソースにはおそらくブログや動画が含まれうるから。 関連性はシンプルに リソースはほとんどの場合が別のリソースと関連している。では、そういう時どうやってシンプルさを保つか。 犬には飼い主がいるだろう。なので次のようにできる。 GET /owners/5678/dogs POST /owners/5678/dogs こんな風にしていくといくらでもリソースの階層が深くできてしまう。 そこで知っておきたいのは主キーが決まってしまえば情報は特
「翻訳: WebAPI 設計のベストプラクティス」を読んで色々と思うところがあったので書きました。 上記の記事は訳文でありますので、正しくは「Best Practices for Designing a Pragmatic RESTful API」に対する所感と述べた方が良いのかもしれませんが、日本語で通して読めるよう Qiita に投稿された訳文に対する所感として書いています。 以下では「翻訳: WebAPI 設計のベストプラクティス」並びに「Best Practices for Designing a Pragmatic RESTful API」は「当該記事」と表現します。 観点 当該記事では「○○とした方がよい」との意見に対してそうすべき理由が明らかになっていないか、もしくは表現が曖昧な場合が目立っていると感じました。設計は実装のようにプログラム言語仕様が制約を与えられないため、意図
これは Enchant の開発者である Vinay Sahni さんが書いた記事「Best Practices for Designing a Pragmatic RESTful API」1を、ご本人の許可を得て翻訳したものです。 RESTful な WebAPI を設計しようとすると、細かなところで長考したり議論したりすると思います。また、他の API に倣ってやってはみたものの、本当にそれでいいのか、どうしてそうしているのか分からない、何てことも少なくはないと思います。 この記事では、そのようなハマリどころについて Vinay さんなりの答えを提示し、簡潔かつ明快に解説してくれています。 今後 WebAPI を設計される方は、是非参考にしてみてください。 なお、誤訳がありましたら編集リクエストを頂けると幸いです。 まえがき アプリケーションの開発が進むにつれて、その WebAPI を公
Swaggerは、REST APIの仕様とそれに関連するツール群の総称です。REST APIの仕様を定義したJSONファイル(Swagger Spec)を軸に以下のようなツールから構成されています。 Swagger UI - Swagger Spec から動的にAPIドキュメントを生成するツール Swagger Editor - Swagger Specのエディタ Swagger Codegen - Swagger Specからクライアントのコードを生成するツール 最近では、Open API InitiativeがAPIの記述のためにSwaggerを採用して話題になりました。 www.publickey1.jp APIドキュメントのメンテは結構面倒 一般的にAPIの仕様書は、古くはExcel/Wordなどを使ったり、最近ではWikiやMarkdown形式で記述したりなどプロジェクトによって
2023 追記 2023 年現在では、以下の文章では採用を見送っている OpenAPI を使えば OK という雰囲気です。 Web APIの設計 作者:Arnaud Lauret翔泳社Amazon TL; DR ドキュメント生成にはkevinrenskers/raml2htmlを使った ドキュメントはRAML - RESTful API modeling languageで書いた RAMLにはJSON SchemaとJSONを記載できる APIで返ってくるJSONはRailsアプリのrequest specでJSON Schemaを使ってテストした JSON Schemaはr7kamura/json_worldで生成した ドキュメントに載せる例示のJSONもJSON Schemaからgin0606/screijiを使って生成した 上記の方法だとリクエストパラメタとドキュメントの整合性を担保
スマホアプリから会員の新規登録、ログインが両方できるようにAPIを作成中。ようやく自前でアクセストークンを作ってOAuth認証が出来たのでまとめておく。 まず何がしたいか? スマホアプリでAPI認証ができるように、OAuthを自前で作成したい。 -> スマホアプリ側ではユーザ名とパスワードを入力すればトークンが取って来れて、そのトークンで各APIにアクセスすればユーザ固有の情報が取って来れるようになる仕組みを作る。 スマホアプリ側でユーザ作成も出来るようにしたい。 -> APIでユーザが作れるようにする。もちろんhttps前提。 環境 gemfile ruby '2.0.0' gem 'rails', '4.0.0' gem 'rails-api' gem 'active_model_serializers' gem 'mongoid', '4.0.0.alpha1' gem "moped
About This documentation explains the specifications of Qiita API v2. Request Requires secure connections with TLS to access the all endpoints of our API, without exception. Use qiita.com host to access to the public Qiita data, otherwise use *.qiita.com to access to Qitia:Team data. Parameters Accepts GET, POST, PUT, PATCH, and DELETE HTTP methods. On GET request, include parameters as URI query
各種APIをクライアントプログラムから利用するためには、OAuth 2.0 Protocolにより規定された認可を行うことが求められます。この手順により、クライアントプログラムがどのようなAPIアクセスを行い、そしてどのような情報が参照または更新されるのか(これをスコープと呼びます)がユーザに提示されます。ユーザの認証、および提示されたスコープについてユーザが同意した場合にのみ、クライアントプログラムはAPIにアクセスするための情報(トークンなど)を得ることができます。 [RFC 6749 - The OAuth 2.0 Authorization Framework] http://tools.ietf.org/html/rfc6749 [RFC 6750 - The OAuth 2.0 Authorization Framework: Bearer Token Usage] http:
よく訓練されたアップル信者、都元です。前回は認証の要らない公開APIからJSON形式のデータを取得してみました。今日は、Facebook APIからデータを取り出してみましょう。 Facebookにおける認証(OAuth 2.0) Facebook APIでは、データを取り出すにあたり認証が必要です。APIに対する認証は、OAuth 2.0という仕組みが一般的で、Facebook APIもこの仕組を採用しています。 通常「認証」と言うと、ユーザ名とパスワードを使ったもの(パスワード認証)を思い浮かべますね。OAuth 2.0においても、この認証を「ユーザ認証(ユーザは誰なのかを確認する作業)」のために用います。さらにOAuth 2.0では、これに加えて「クライアント認証(クライアントは何なのかを確認する作業)」が必要で、そのためにいくつか準備が必要になります。 クライアントというのは、ユー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く