Learn how to innovate faster while maintaining the highest security standards and customer trust
これは Enchant の開発者である Vinay Sahni さんが書いた記事「Best Practices for Designing a Pragmatic RESTful API」1を、ご本人の許可を得て翻訳したものです。 RESTful な WebAPI を設計しようとすると、細かなところで長考したり議論したりすると思います。また、他の API に倣ってやってはみたものの、本当にそれでいいのか、どうしてそうしているのか分からない、何てことも少なくはないと思います。 この記事では、そのようなハマリどころについて Vinay さんなりの答えを提示し、簡潔かつ明快に解説してくれています。 今後 WebAPI を設計される方は、是非参考にしてみてください。 なお、誤訳がありましたら編集リクエストを頂けると幸いです。 まえがき アプリケーションの開発が進むにつれて、その WebAPI を公
HTTPステータスコードを返すというのはとても単純なことです。ページがレンダリングできた?よし、それなら 200 を返しましょう。ページが存在しない?それなら 404 です。他のページにユーザをリダイレクトしたい? 302 、あるいは 301 かもしれません。 I like to imagine that HTTP status codes are like CB 10 codes. "Breaker breaker, this is White Chocolate Thunder. We've got a 200 OK here." — Aaron Patterson (@tenderlove) 2015, 10月 7 訳:HTTPのステータスコードのことは、市民ラジオの10コードみたいなものだと考えるのが好きです。「ブレーカー、ブレーカー、こちらホワイト・チョコレート・サンダー。200
API Development forEveryone Simplify your API development with our open-source and professional tools, built to help you and your team efficiently design and document APIs at scale. Find your toolRead the docs Trusted by Empowering API Development Streamline your workflow with unparalleled API specification support Swagger places API specifications such as OpenAPI, AsyncAPI, and JSON Schema at the
HAL - Hypertext Application Language A lean hypermedia type Author: Mike Kelly <[email protected]> Created: 2011-06-13 Updated: 2013-09-18 (Updated) Summary HAL is a simple format that gives a consistent and easy way to hyperlink between resources in your API. Adopting HAL will make your API explorable, and its documentation easily discoverable from within the API itself. In short, it will make yo
最近、「URIテンプレート(URI Template)」という言葉を聞くことがあるので、次の仕様を読んでみました。 http://bitworking.org/projects/URI-Templates/spec/draft-gregorio-uritemplate-03.html 要するに次のようなもんです。 一種のテンプレート言語なので、テンプレートプロセッサにより展開される部分があります。その構文は次のとおり。 展開部分 ::= '{' 式 '}' 式が、変数束縛の環境のもとで評価されて文字列になります。テンプレートプロセッサは、展開部分内の式言語(expression languate)のインタプリタにもなっています。 その式言語の特徴は: データは、UNICODE文字列、またはUNICODE文字列のリスト。 変数にデータが束縛された環境を持つ。 変数に何も束縛されてないことを表
API Blueprint. A powerful high-level API description language for web APIs. API Blueprint is simple and accessible to everybody involved in the API lifecycle. Its syntax is concise yet expressive. With API Blueprint you can quickly design and prototype APIs to be created or document and test already deployed mission-critical APIs. Tutorial Tools section Focused on Collaboration API Blueprint is bu
A Modern Web Suite for RESTful APIs.You'll get the same great, easy-to-use API Portal capabilities, but now with all the breadth of the full Anypoint Platform for APIs, including: API Management Key provisioning API implementation based on RAML Continue Design delightful APIs Take a design-first approach by defining your APIs in RAML, immediately testing them, and auto-generating a portal to gathe
APIのバージョニングは限局分岐でやるのが良い - Hidden in Plain Sightにはブコメしたのですが、Rebuild: 35: You Don't Need API Version 2 (Kenn Ejima)でも本件に言及があったようなので、少し一般論を書いておきたいと思います。 ■Web APIの設計原則について そもそも、良いAPIとはどのような特性をもつものでしょうか? 一般的に、以下の2点が挙げられると思います。 拡張が容易である 拡張時に後方互換性を破壊しない ウェブの場合は、これに加え、 スケーラブルである HTTPに起因する問題に上手に対処できる ことが求められます。 前2者はウェブに限らない要件です。これを満たす設計手法としては、 リクエストおよびレスポンスのパラメータを拡張可能に 互換性を壊す拡張が必要な場合は、関数名を変える 古い関数は従来と同じ機能を
移転しました http://please-sleep.cou929.nu/20130121.html
これApigee | Google Cloud Blogの勝手訳のつづき。ここらから、なかなかの割り切りを推奨していて、いよいよ「実用的REST」になってきた感じ。 関連づけを単純化する - 複雑なものは‘?’の下に一掃する このセクションでは、リソース間の関連と状態や属性のようなパラメーターとを取り扱うばあいの、APIのデザインの検討事項を探索します。 関連付け リソースはたいていいつでも他のリソースと関連しています。Web API でこれらの関連を表現する単純なやりかたとは、なんでしょうか? もういちど、「名詞は良い・動詞は悪い」でモデル化したAPI - そのAPIは犬 dog リソースでやりとりするものでした - をみてみましょう。思い出してください、/dogs と dogs/1234 という2つのベースURLがありました。 HTTP動詞をつかって、リソースとコレクションを操作しまし
ちょっと前にTwitterでAPIのバージョニングをどうやるかみたいな話をしていたのですが、そのへんもやもやしているので少し整理しておきたいなと。 APIのURLを/api/v1/*とかってやるの、やめたほうがいいとおもうんだけどなぁ。いざv2を作るとなったときに、大量のコピペが発生して後悔するよ、って伝えたい。— Kenn Ejima (@kenn) February 28, 2014 さて、これについて色々と異論・反論も含めた意見が出たのですが、まずは、大昔にURL方式(=コントローラ分割)でやってきて後悔したぼくが、(5年ぐらい前から)現在はどうやってAPIのバージョンを管理しているか?について紹介します。 基本原理としては、コピペが多発する根っこで分岐(=コントローラ分割)じゃなくて、必要最小限のところで限局的に分岐するのがいい、という考え方に基づきます。 一言でいうと、「パラメー
WebOS Goodies へようこそ! WebOS はインターネットの未来形。あらゆる Web サイトが繋がり、共有し、協力して創り上げる、ひとつの巨大な情報システムです。そこでは、あらゆる情報がネットワーク上に蓄積され、我々はいつでも、どこからでも、多彩なデバイスを使ってそれらにアクセスできます。 WebOS Goodies は、さまざまな情報提供やツール開発を通して、そんな世界の実現に少しでも貢献するべく活動していきます。 少し前にActiveResource で Google Spreadsheets をアクセスするライブラリを公開しましたが、思ったほどブクマとかされなくて、ちょっとションボリ(´・ω・`)な感じでした。まあ、ライブラリがイマイチと言われればそれまでなのですが、それ以前に ActiveResource 自体があまりよく知られていたいのかな、という気もします。たしかに
» REST 入門 目次 前回、URI で特定できるリソースに HTTP の GET という動詞を適用して、 ある時点・条件での状態の表現を転送するのが REST だという説明をしました。 URI (名詞)に適用できる動詞は GET だけではありません。 今回は GET 以外の三つの動詞を紹介します。 前提知識 ここでは実際に稼動している REST 実装の例としてはてなブックマーク AtomAPI を使います。 はてなブックマークそのものの説明はしませんので、あらかじめご了承ください。 はてなブックマークに登録したひとつのブックマークを考えてみてください。 このひとつのブックマークエントリが、対象のリソースになります。 たとえば REST 入門の目次をブックマークしたとします。 このブックマークの URI は http://b.hatena.ne.jp/atom/edit/175062 で
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く