https://www.cnblogs.com/alice-bj/p/9258121.html
1. RESTfulなとは何ですか
RESTは技術とは何の関係もない、ソフトウェアアーキテクチャのスタイルを表し、RESTはのRepresentational State転送短く、中国語の翻訳は「転送の状態を特徴付けること」です。
RESTリソースは、URLのクライアントアプリケーションを介してリソースにアクセスすることを特徴とURLノードによって識別されたネットワークリソースに配布される、クラス全体のネットワークの観点から見ている、これらのアプリケーションへのアクセスは、これらのステータスを変更した特徴づけます。
リソースが最も重要な属性の他のRESTアーキテクチャスタイルとは異なり、データのすべてが、ネットワークや操作(CRUD)データによって買収されたが、リソース、すべてのデータです。
このリソース指向のRESTアーキテクチャスタイルのために、それが示唆された新しい構造の概念、すなわち:リソース指向アーキテクチャ(ROA:リソース指向アーキテクチャ)。
2、RESTfulなAPIの設計
- APIと常に使用してユーザの通信プロトコル、HTTPSプロトコルを。
- ドメイン名
- APIは、専用のドメイン名を展開しようとしますhttps://api.example.com(クロスドメインの問題があるでしょう)
- https://example.org/api/ APIは非常に簡単です
- 版
- します。https://api.example.com/v1/のようなURL、
- 最初のクロスドメインリクエスト、複数の要求のイニシエータを送信
- パスは、すべてがCTVネットワークリソース上にある、すべての(複数可能)名詞を表します
- https://api.example.com/v1/zoos
- https://api.example.com/v1/animals
- https://api.example.com/v1/employees
- 方法
- GET:サーバーからリソース(一つ以上)を削除
- POST:サーバ上に新しいリソースを作成します。
- PUT:サーバー上のリソースを更新(クライアントが提供する完全なリソースを変更した後)
- PATCH:サーバー上で更新されたリソース(クライアントは、プロパティの変更を提供します)
- DELETE:サーバーからリソースを削除
- 濾過し、フォームのURLにアップロードされた検索条件パラメータを通過
- https://api.example.com/v1/zoos?limit=10:返されたレコードの数を指定します。
- https://api.example.com/v1/zoos?offset=10:指定されたレコードの開始位置を返します。
- https://api.example.com/v1/zoos?page=2&per_page=100は:最初の数ページだけでなく、ページあたりのレコード数を指定します。
- https://api.example.com/v1/zoos?sortby=name&order=asc:属性によってソートされた結果を返す指定、およびソート順
- フィルタ条件を指定します。https://api.example.com/v1/zoos?animal_type_id=1
- ステータスコード
200 OK - [GET]:サーバが正常にユーザによって要求されたデータを返し、操作が冪等(べき等)です。 201 CREATED - [POST / PUT / PATCH]: 正常に新規または変更されたユーザデータ。 受け入れ202 - [*]:要求を表すが(非同期タスク)背景にキューイングされた 204 NO CONTENT - [削除]:正常にユーザデータを削除します。 400 INVALID REQUEST - [POST / PUT / PATCH]: ユーザー誤って発行された要求、サーバは操作データを作成または変更しない、操作が冪等です。 401権限- [*]:ユーザーが権限(トークン、ユーザ名、パスワードエラー)を持っていないことを示しています。 403禁止- [*]ユーザが許可されていることを示す(401相対誤差)が、アクセスが禁止されます。 404が見つかりません- [*]:ユーザーがサーバーが操作されていない、記録の要求が存在しない発行し、操作が冪等です。 406許容できない- [GET]:ユーザによって要求されたフォーマットが利用可能でない(例えば、ユーザによって要求されたJSON形式のみXML形式など)。 410ゴーン- [GET]:ユーザの要求リソースは永続的に除去され、そして得られないであろう。 422 Unprocesableエンティティ- [POST / PUT / PATCH] オブジェクトが作成されると、検証エラーが発生します。 500内部サーバーエラー- [*] :サーバーエラーが発生し、利用者は、要求が正常に送信されたかどうかを確認することができません。 ます。http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.htmlよりこちらを参照してください。
- エラー処理、ステータスコード4XXは、キーなどのエラーメッセージ、エラーを返す必要があるとき。
{ エラー: "無効なAPIキー" }
- 異なる操作の結果を返し、サーバーにユーザーから返された結果は、以下の仕様を満たす必要があります。
/コレクションGET:リソースオブジェクトのリスト(配列)を返し 、単一のリソースオブジェクトを返す:/コレクション/リソースをGET POST /コレクション:新しく作成されたリソースオブジェクトへの復帰 PUT /コレクション/リソースは:完全なリソースオブジェクトを返す リターン:PATCH /コレクション/リソースを完全なリソースオブジェクト DELETE /コレクション/リソース:空のドキュメントを返します。
- ハイパーメディアAPI RESTfulなAPIはハイパーメディアを行うことが最善であるユーザーがドキュメントをチェックするだけでなく、次に何をすべきか分かっていないように、つまり、返された結果が、でも他のAPIメソッドに、リンクを提供します。
{ "リンク":{ "REL": "コレクションhttps://www.example.com/zoos"、 "HREF": "https://api.example.com/zoos"、 "タイトル":「の一覧動物園」、 "タイプ": "アプリケーション/ vnd.yourformat + JSON" }}
ます。http://www.ruanyifeng.com/blog/2014/05/restful_api.htmlからの抜粋
http://www.cnblogs.com/yuanchenqi/articles/8742684.html
http://www.cnblogs.com/wupeiqi/articles/7805382.html
https://www.cnblogs.com/liwenzhou/p/8543035.html