2012-04-25 4 views
3

RESTfulに関するほとんどのチュートリアル、ドキュメント、記事などで、私はいくつかの同じ点に出くわしますが、 RESTfulなポイントを実装します。RESTful APIに関するいくつかの質問とベストプラクティスのほとんどが実装されていない理由

例えば、私はこの何回も読んだ:URL

で拡張HTTPヘッダ

Accept: application/json, text/plain 

を使用して

  • コンテンツタイプ

    を10

    Not RESTful, URLs are not the place for Content-Type 
    

私はこれが実装見てきたAPIに遭遇したことがありません。私がこれまで使ってきたAPIはすべて、URLの最後にXMLまたはJSONを追加する必要があります。彼らはそれを間違っているのですか?

  • バージョニング

    版メディアタイプ

    アプリケーション/ vnd.something.v1 + JSON

    カスタムヘッダ

    X-API-バージョン:URL中1

    バージョン

    /V1/resouce ないRESTfulな、URLにバージョンを置くことによって、あなたが別々のリソース

を作成

後方互換性のない機能を導入する必要がある場合は、確実に別個のリソースを作成するのは正しいことですか?これらの点を実装していないことで

もう一度、私が使用したのAPIのすべてのバージョンでは、彼らはV1を使用し、URLでV2(例えばimgurなどグーグル、など)

は、私のAPIは考えられませんRESTful?

これらの点を明確にすることは非常に高く評価されます。

+1

"RESTful"とラベル付けされている既存のAPIが実際にはRESTfulであると仮定してください。最も簡単なソースは、RESTが[Rest in Practice](http://restinpractice.com)の本であることを理解するために見つけたものです。残念なことに、RESTという用語は、HTTP経由でのAPIの実装を記述するために使用されるようになっています。 –

答えて

5

1)RESTfulシステムでは、acceptヘッダーを使用するか、形式固有のURLを使用することが有効です。引用している記事が間違っています。

2)v1/resourceがRESTfulでないと言っても間違っています。 URIを見て、そのRESTfulnessについての結論を出すことはできません。あなたのシステムを段階的に進化させようとするなら、あなたのURLのルートにv1を追加することはおそらく大したことではありません。実際には全く新しいURL空間を宣言し、古いものを廃止します。それはかなり劇的です。 RESTFulシステムは、システムに対して増分的かつ進化的な変更を試み、可能にする。したがって、実際に/resource/v2を実行することは、その目標とはるかに互換性があります。

ここで働いている不運な現象は、RESTについて学んでいる多くの開発者が、RESTを実行しようとしているシステムの大部分が実際にRESTの制約に準拠していないことを発見しているということです。だから、RESTfulであるかどうかを皆に伝える熱意をすぐに発揮します。これらの人々の多くは、まだ制約を完全に理解しておらず、存在しない新しいものを作り上げてしまいます。 「RESTFul URL」の誤りは古典的です。 "POSTはリソースを作成する必要があります"はもう一つ共通のものです。

RESTを勉強している人には、何かがRESTfulではないと言った場合、違反している制約とその制約を無視することによる実際の影響を尋ねられます。彼らがそれに答えることができなければ、丁寧に無視します。

+0

あなたの答えをありがとうとポイントを明確にしていただきありがとうございます。確かに、あなたはRESTfulがまったくないので自分自身を宣伝するほとんどのAPIが正しいです。 – Flukey

1

RESTの真の定義は明らかに2002年にRoy Fieldingによって書かれたdoctoral dissertationです。そこでは、FESTで指定されたガイドラインに沿ってRESTfulと呼ばれるすべてのAPIがありますか?答えはいいえだ。 RESTの定義は、SOAPを使用していないものを意味するものもあります。私は、RESTfulであることと、何が良い習慣であるかについて、それほど心配しません。要求のヘッダーにコンテンツの種類を指定することをお勧めします。また、APIのバージョンを設定することをお勧めします。 APIのベストプラクティスに関する情報の参考資料は、Apigeeのユーザーからのもので、この分野で豊富な経験を持っています。あなたが実践主義者であるかRESTafarianであるかを質問するRESTful API Designのウェブセミナーをご覧ください。

+0

あなたの答えをありがとう。 apigeeのリンクはとても面白かったです!ウェビナーと同じように! – Flukey

+1

@Flukey Brian Mulloyのハイパーメディアに関するウェビナーを見ると、彼は実用的なRESTという言葉を使うのは間違いだと言っています。 –

関連する問題