TIL Day 36 REST API
クライアントとサーバの通信を担当するAPIについて説明します.
GoogleやMSのような大手IT企業はどのようにAPIを作成していますか?
Webサイトを独自に作成および管理する場合は、APIルールは必要ありません.しかし、会社はチーム単位でサービスを開発しているので、小さなことでもルールがあり、コミュニケーションがスムーズになります.
REST APIが理解できます. Postmanとは何かを理解し、使用することができます.
Webアプリケーションは、HTTPメソッド(GET/POST/PUT/DELETEなど)を使用して、要求および応答によりデータを交換します.リクエストと応答には、「送信と受信が正しい」という約束があります.REST API(Representation State Transfer)の略で、Web上で使用されるデータまたはリソースをHTTP URIとして表し、HTTPプロトコルによって要求および応答を定義する方法を指す.
では、どのようにして約束に合ったREST APIを作成するのでしょうか.
HTTPプロトコルを単純に使用します.
個別資源との通信を遵守する.
簡単に言えば、第1の段階において、すべてのリソースは、各リソースに対応するエンドポイントを使用し、要求および受信されたリソースの情報を応答として伝達しなければならない.
また、特定の時間に予定されている場合、実際のslotリソースのID 123のリソースが変更されるので、実際に
これらのリソースの変化や応答の違いにより、異なるエンドポイントを使用することが重要であるため、適切なエンドポイントを使用することが重要である.
ステップ2では、CRUDに適切なAPIを記述することに重点を置く.
上記の例のように、READは時間を予約することができ、CREATEは特定の時間に予約することができる.したがって、READを行うために、
CREATEを予約するためには、
第2段階の条件が満たされる場合、REST APIと呼ぶことができる.
ステップ3はスキップ
GoogleやMSのような大手IT企業はどのようにAPIを作成していますか?
Webサイトを独自に作成および管理する場合は、APIルールは必要ありません.しかし、会社はチーム単位でサービスを開発しているので、小さなことでもルールがあり、コミュニケーションがスムーズになります.
AG
REST API
Webアプリケーションは、HTTPメソッド(GET/POST/PUT/DELETEなど)を使用して、要求および応答によりデータを交換します.リクエストと応答には、「送信と受信が正しい」という約束があります.REST API(Representation State Transfer)の略で、Web上で使用されるデータまたはリソースをHTTP URIとして表し、HTTPプロトコルによって要求および応答を定義する方法を指す.
では、どのようにして約束に合ったREST APIを作成するのでしょうか.
良好なREST APIの設計方法
REST成熟度モデル-手順0
HTTPプロトコルを単純に使用します.
req : POST/appointment HTTP/1.1
res : HTTP/1.1 200 OK
第0期HTTPプロトコルが適用されない理由:要求内容の特徴を正確に理解できない.REST成熟度モデル-手順1
個別資源との通信を遵守する.
簡単に言えば、第1の段階において、すべてのリソースは、各リソースに対応するエンドポイントを使用し、要求および受信されたリソースの情報を応答として伝達しなければならない.
req : POST/doctors/허준 HTTP/1.1
[헤더 생략]
{"date" : "2022-08-10"
}
res : HTTP/1.1 200 OK
[헤더 생략]
{
"slots" : [
{"id" : 123, "doctor" : "허준", "start" : "09:00", "end" : "12:00"},
{"id" : 124, "doctor" : "허준", "start" : "14:00", "end" : "16:00"}
req : POST/slots/123 HTTP/1.1
[헤더 생략]
{
"patient" : "김코딩"
}
res : HTTP/1.1 200 OK
[헤더 생략]
{
"appointment" : {
"slot" : {"id" : 123, "doctor" : "허준", ~},
"patient" : "김코딩"
}
}
//또는
res : HTTP/1.1 409 Conflict
[헤더 생략]
{
"appointmentFailure : {
"slot" : {"id" : 123, "doctor" : "허준",~},
"patient" : "김코딩",
"reason" : "해당 시간은 이미 예약되어 있습니다."
}
}
第0段階では、すべての要求がエンドポイント/appointment
として使用され、第1段階では、예약 가능한 시간 확인
と呼ばれる要求応答のリソースは、許駿という医師が予約できる時間である.したがって、/doctor/허준
という端点が使用される.また、特定の時間に予定されている場合、実際のslotリソースのID 123のリソースが変更されるので、実際に
/slot/123
に変更されたリソースがエンドポイントとして使用される.これらのリソースの変化や応答の違いにより、異なるエンドポイントを使用することが重要であるため、適切なエンドポイントを使用することが重要である.
REST成熟度モデル-手順2
ステップ2では、CRUDに適切なAPIを記述することに重点を置く.
上記の例のように、READは時間を予約することができ、CREATEは特定の時間に予約することができる.したがって、READを行うために、
GET
メソッドを使用して要求が送信され、GET
はbody
を有さないので、query parameterを使用して必要なリソースが伝達される.CREATEを予約するためには、
POST
の方法でリクエストを送信することが望ましい.req : GET/doctors/허준/slots?date=2022-08-10 HTTP/1.1
[헤더 생략]
res : HTTP/1.1 200 OK
{
"slots" : [
{"id" : 123, "doctors" : "허준", ~},
{"id" : 124, "doctors" : "허준", ~}
]
}
req : POST/slots/123 HTTP/1.1
[헤더 생략]
{
"patient" : "김코딩"
}
res : HTTP/1.1 201 Created
Location : slots/123/appointment
[헤더 생략]
{
"appointment" : {
"slot" : {"id":123, "doctor" : "허준", ~ },
"patient" : "김코딩"
}
}
上の方法の使い方を整理してみます.GET
:変更されていないリクエストにサーバ上のデータを使用する必要があります.POST
:要求ごとに新しいリソースが生成されます.PUT
:要求ごとに新しいリソースが返されます.(更新)(べき乗など)PATCH
:要求されたリソースの一部を更新します.第2段階の条件が満たされる場合、REST APIと呼ぶことができる.
ステップ3はスキップ
Open API
Reference
この問題について(TIL Day 36 REST API), 我々は、より多くの情報をここで見つけました https://velog.io/@boo1996/TIL-Day-36-REST-APIテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol