REST API

4007 ワード

REST API?


REST APIでは、「REST」はRepresentation State Transferの略であり、Web(HTTP)の利点を十分に活用できるアーキテクチャである.RESTのコンポーネントには、リソース−URI、動作−HSTP方法および表現が含まれる.
URI、URL違い?
  • URIは、特定のリソースを識別する統合リソース識別子(統合リソース識別子)を表す.Webテクノロジーで使用される論理リソースまたは物理リソースを識別します.
  • URLは、コンピュータネットワーク上でリソースがどこにあるかを示すための約束であり、URIのサブセットである.
  • REST APIルール


    1. REST APIs use Uniform Resource Identifiers (URIs) to address resources.


    Webで使用するデータまたはリソースは、HTTP URIとして表示する必要があります.
    URIは資源を表すことに重点を置くべきであるため,行為(動詞)表現を含むべきではない.

    2. Use HTTP Method(GET, POST, PUT, DELETE)


    リソースの動作はHTTP METHODで表される.

    通常、CRUDはGETクエリー、POST登録、PUT修正、DELETE削除を使用します.

  • POST VS PUT:POSTとPUTをべき乗等性(複数回の実行結果が同じ)で区別することができ、POSTは呼び出しごとに新しいデータを追加するが、PUTは繰り返し実行結果が同じである.


  • PUT vs.PATCH:PATCHは、データ部分のみを変更したい場合に使用する方法であり、変更が必要な部分のみを含みますが、PUTは変更が必要な部分+変更が必要でないすべての属性を要求に含める必要があります.
  • 3. Lowercase letters should be preferred in URI paths.


    小文字URIを使用します.RFC 3986(URI構文フォーマット)は、URIスキームおよびホストを含まない大文字と小文字を区別することを規定する.
    1) http://api.example.com/my-folder/my-doc [o]
    2) HTTP://API.EXAMPLE.COM/my-folder/my-doc [o]
    
    3) http://api.example.com/My-Folder/my-doc [x]

    4. Hyphens (-) should be used to improve the readability of URIs. Underscores (_) should not be used in URIs.


    下の列の代わりにハイフンを使用します.
    http://api.example.com/blogs/guy-levin/posts/this-is-my-first-post [o]
    http://api.example.com/blogs/guy-levin/posts/this_is_my_first_post [x]

    5. Forward slash separator (/) must be used to indicate a hierarchical relationship.


    階層関係を表す場合は、スラッシュで区切ります.
    http://api.canvas.com/shapes/polygons/quadrilaterals/squares

    6. A trailing forward slash (/) should not be included in URIs.


    URIの最後にスラッシュ(/)は含まれません.
    http://api.canvas.com/shapes/ [x]
    http://api.canvas.com/shapes  [o]

    7. File extensions should not be included in URIs.


    URIにはファイル拡張子は含まれていません.
    http://api.college.com/students/3248234/courses/2005/fall.json [x]
    http://api.college.com/students/3248234/courses/2005/fall [o]

    8. the endpoint name should be plural


    端点名は複数で作成されます.
    http://api.college.com/students/3248234/courses - Retrieves a list of all courses that are learned by a student with id 3248234.
    http://api.college.com/students/3248234/courses/physics - Retrieves course physics for a student with id 3248234.
    リファレンス
    https://velog.io/@pjh612/REST-API-URI-%EA%B7%9C%EC%B9%99
    https://velog.io/@stampid/REST-API%EC%99%80-RESTful-API
    https://restfulapi.net/rest-put-vs-post/
    https://dzone.com/articles/7-rules-for-rest-api-uri-design-1
    今後発表する必要があるその他の内容
  • 良好なREST API(リチャードソンのREST成熟度モデル)をどのように設計するか
    https://blog.restcase.com/5-basic-rest-api-design-guidelines/
    https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md
    https://cloud.google.com/apis/design