Restful APIの作成について...
RESTful API
RESTサービスのURIパスの設計
パス要素を使用して、サーバ上で実行されているエンドポイントの場所を検索します.RESTエンドポイントには、パラメータとドキュメントの場所を含めることができます.
query-stringは、ページ番号などのパラメータを渡したり、返されるデータを制御したりするためにソートを使用するため、同様に重要です.
以下に、URI形式を指定する一般的なルールを示します.スラッシュ(/)は、リソース間の階層関係を表すために使用されます. URIの最後にスラッシュを含めるべきではありません. は、毒性を高めるためにハイフン(-)を使用する必要がある. 下線文字は()URIでは使用できません. URIパス部分の大文字と小文字を区別し、小文字を使用することが望ましい. パスは、ドキュメント(ドキュメント)、コレクション(収集)、リポジトリ(ストレージ)、コントローラ(コントローラ)に分けられます.
collection
コレクションは、通常、単一のドキュメントにアクセスするためのパラメータによって区切られる複数のリソースを含むディレクトリです.例:
document
ドキュメントは、データベース内のロー(row)に似たオブジェクトを指すリソースです.1つのドキュメントには、サブドキュメントまたはコレクションなどのサブリソースがあります.例:
コントローラリソースはプロセスと似ていますが、通常は標準CRUD機能にリソースをマッピングできない場合に使用されます.
コントローラの名前は、サブリソースのないURIパスの最後の部分です.
コントローラにパラメータが必要な場合は、通常query-stringにパラメータが含まれます.
store
リポジトリは、クライアントが管理するリポジトリであり、クライアントがリソースを追加、検索、削除できるようにします.コレクションとは異なり、リポジトリは新しいURIを作成するのではなく、クライアントが指定したURIを使用します.
HTTP METHOD
GET
GETメソッドは、リソースを検索するために使用されます.通常、本明細書(request body)は一緒に渡されませんが、無効なリクエストではありません.
POSTメソッドは、コレクションの新しいリソースを作成したり、コントローラを実行したりするために使用されます.POSTは一般に非べき乗等性を有する.1回目の呼び出しと同じ要素で、複数回の呼び出しで同じ要素が複数生成されます.(ID値が異なる場合があります)
PUTメソッドは、変更可能なリソースを更新するために使用され、常にリソース識別情報を含む必要があります.また、PUTは、POSTとは異なり、1回の要求と同じリソース状態を維持する複数の要求のべき乗等性を有する.
PATCH法は部分更新を実行するために用いられる.たとえば、猫の名前だけを更新する場合は、変更する詳細のみを含むPATCHリクエストを作成できます.
DELETE
DELETEメソッドは、リソースを削除するために使用されます.削除するリソースIDは通常、本文以外のパスの一部として使用されます.
HEADメソッドは、GETではなく、クライアントがサーバ上にリソースがあるか、メタデータを読み込もうとしているかを検証するために使用されます.
OPTIONメソッドは、サーバ上のリソースに対するクライアントの可能な動作を理解するために使用されます.通常、サーバは、このリソースで使用できるHTTPメソッドを含むAllow Headerを返します.
RESTサービスのURIパスの設計
パス要素を使用して、サーバ上で実行されているエンドポイントの場所を検索します.RESTエンドポイントには、パラメータとドキュメントの場所を含めることができます.
query-stringは、ページ番号などのパラメータを渡したり、返されるデータを制御したりするためにソートを使用するため、同様に重要です.
以下に、URI形式を指定する一般的なルールを示します.
collection
コレクションは、通常、単一のドキュメントにアクセスするためのパラメータによって区切られる複数のリソースを含むディレクトリです.例:
GET/cats -> 모든 고양이가 컬렉션에 들어있다.
GET/cats/1 -> 1번 고양이를 위한 하나의 문서
コレクションを定義する場合、コレクションの名前は上記の例のように猫のような複数型を指す必要があります.document
ドキュメントは、データベース内のロー(row)に似たオブジェクトを指すリソースです.1つのドキュメントには、サブドキュメントまたはコレクションなどのサブリソースがあります.例:
GET/cats/1 -> 1번 고양이를 위한 문서
GET/cats/1/kittens -> 1번 고양이의 모든 새끼 고양이들
GET/cats/1/kittens/1 -> 1번 고양이의 1번 새끼 고양이
controllerコントローラリソースはプロセスと似ていますが、通常は標準CRUD機能にリソースをマッピングできない場合に使用されます.
コントローラの名前は、サブリソースのないURIパスの最後の部分です.
コントローラにパラメータが必要な場合は、通常query-stringにパラメータが含まれます.
POST/cats/1/feed -> 1번 고양이에게 먹이주기
POST/cats/1/feed?food=fish -> 1번 고양이에게 물고기로 먹이주기
コントローラ名を定義するときは、常に動詞を使用する必要があります.動詞は、給餌(feed)や送信(send)などの動作や状態を表す語である.store
リポジトリは、クライアントが管理するリポジトリであり、クライアントがリソースを追加、検索、削除できるようにします.コレクションとは異なり、リポジトリは新しいURIを作成するのではなく、クライアントが指定したURIを使用します.
PUT/cats/2
上記の例では、ID 2の猫を記憶している.HTTP METHOD
GET
GETメソッドは、リソースを検索するために使用されます.通常、本明細書(request body)は一緒に渡されませんが、無効なリクエストではありません.
// request
GET/v1/cats/1
//response
HTTP/1.1 200 OK
Content-Type: application/json
Content-length: xxxx
{"name":"kitty","weight":15}
POSTPOSTメソッドは、コレクションの新しいリソースを作成したり、コントローラを実行したりするために使用されます.POSTは一般に非べき乗等性を有する.1回目の呼び出しと同じ要素で、複数回の呼び出しで同じ要素が複数生成されます.(ID値が異なる場合があります)
// request
POST/v1/cats HTTP/1.1
Content-Type: application/json
Content-length: xxxx
{"name":"kitty","weight":15}
// response
HTTP/1.1 201 Created
Content-Type: application/json
Content-length: xxxx
Location: /v1/cats/123
PUTPUTメソッドは、変更可能なリソースを更新するために使用され、常にリソース識別情報を含む必要があります.また、PUTは、POSTとは異なり、1回の要求と同じリソース状態を維持する複数の要求のべき乗等性を有する.
// request
PUT/v1/cats HTTP/1.1
Content-Type: application/json
Content-length: xxxx
{"name":"king","weight":22}
// response
HTTP/1.1 201 Created
Content-Type: application/json
Content-length: 0
PATCHPATCH法は部分更新を実行するために用いられる.たとえば、猫の名前だけを更新する場合は、変更する詳細のみを含むPATCHリクエストを作成できます.
// request
PATCH/v1/cats/123 HTTP/1.1
Content-Type: application/json
Content-length: xxxx
{"name":"kking"}
// response
HTTP/1.1 204 No Body
Content-Type: application/json
Content-length: 0
しかし、通常、PATCHではなくPUTを使用してオブジェクト全体をコピーし、更新後に返されるモードでより多くのコードを記述します.DELETE
DELETEメソッドは、リソースを削除するために使用されます.削除するリソースIDは通常、本文以外のパスの一部として使用されます.
// request
DELETE /v1/cats/123 HTTP/1.1
Content-Type: application/json
Content-Length: 0
// response
HTTP/1.1 204 No Body
Content-Type: application/json
Content-Length: 0
HEADHEADメソッドは、GETではなく、クライアントがサーバ上にリソースがあるか、メタデータを読み込もうとしているかを検証するために使用されます.
// request
HEAD/v1/cats/123 HTTP/1.1
Content-Type: application/json
Content-Length: 0
// response
HTTP/1.1 200 OK
Content-Type: application/json
Last-Modified: 2021/08/05
OPTIONOPTIONメソッドは、サーバ上のリソースに対するクライアントの可能な動作を理解するために使用されます.通常、サーバは、このリソースで使用できるHTTPメソッドを含むAllow Headerを返します.
// request
OPTION/v1/cats/123 HTTP/1.1
Content-Length: 0
// response
HTTP/1.1 200 OK
Content-Length: 0
Allow: GET, PUT, DELETE
Reference
この問題について(Restful APIの作成について...), 我々は、より多くの情報をここで見つけました https://velog.io/@leewoooo_dev/Restful-API-작성에-관하여テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol