Network)API
10577 ワード
学習目標
1. REST API
2. Open API
中に入ると…。
アプリケーションプログラミングインターフェース(API)は、アプリケーションソフトウェアを構築および統合し、大量のデータにルールを提供するための定義およびプロトコルのセットです.
APIは、地図、承認、チャットなどの多くのデータを提供します.
1. REST API
REST(Representation State Transfer)APIは、Webの利点を最大限に活用できるアーキテクチャであり、李フェルティンの博士号論文で初めて紹介された.Webで使用されるデータリソース(Resource)はHTTP URLとして表され、HTTPプロトコルにより要求と応答を定義する方式である.
HTTPプロトコルに基づいて、要求と応答に応じてリソースを交換するには、理解しやすく、良好なルールを記述する必要があり、APIがこの役割を実行する必要があるため、ルールに基づいて記述することが重要である.
特長
統合されたインタフェース:要求がどこから来ても、同じリソースに対するすべてのAPI要求は同じでなければなりません.
クライアント-サーバペアリング:REST API設計では、クライアントとサーバアプリケーションが完全に独立している必要があります.
ステータスなし:REST APIはサーバ側セッションを必要としません.セッション情報などを格納する必要がなく、サービスの自由度が向上
キャッシュ性:可能な場合は、リソースをクライアントまたはサーバ側でキャッシュできる必要があります.
階層アーキテクチャ:REST APIでは、呼び出しと応答が異なるレイヤを通過します.
コードプロンプト(オプション):REST APIは通常、静的リソースを送信しますが、場合によっては、応答に実行可能なコード(Java appletなど)が含まれる場合があります.この場合、コードはリクエスト時のみ実行する必要があります.
リソース(URL)
リソースを説明するには、アクション動詞ではなく具体的な名前を使用する必要があります.
GET/users/1234, POST/users
URIキャビネット
プログラムリソースの命名には、次の3つの主要なタイプのルールがあります.
CamelCase:最初のアルファベットは大文字(強調表示開始)を使用します.
SnakeCase:単語を「」で区切ってスケール
sphine-Case:「-」はSnake Caseに似ています
HTTPメソッド
TIP)PutとPostの違い
3.1 General Header:一般的に要求と応答メッセージに適用される
3.2クライアント要求リーダ:要求メッセージにのみ適用
3.3サーバ応答Header:応答メッセージのみ
3.4エンティティヘッダー:エンティティ-マスター情報を定義するか、Bodyがない場合、識別を要求するリソースの情報を定義します.
query列挙変数
4.1パッケージング:API初期設計段階において、予測リソースのページングが必要である.
返されるデータ量の進捗を予測しにくい場合は、デフォルト値としてリソースを選択したほうがいいです.
4.2フィルタ:特定の属性と予想値を指定することで、クエリーのリソース数を制限します.
4.3 Sorting:ソートパラメータは、ソートを実行する属性の名前をカンマ(,)で区切る必要があります.
4.4検索:検索に関する推奨、変更、および情報を、リソースおよびコレクションとは異なる形式で追加します.
ステータスコード
!)手順0:手順0では、HTTPプロトコルを使用するだけです.もちろん、この場合、このAPIはREST APIとは呼ばれず、0は良好なREST APIを作成するための基本的なステップである.
- Request
Post https://API/user HTTP/1.1
[헤더생략]
{
"Date":"2021-10-19"
"unsername":["baek"]
}
- Response
HTTP/1.1 200ok
[헤더생략]
{
"slots":[{"username":"baek",
"job":"programeer"]
}
!!)第1段階:第1段階では,各リソースとの通信を遵守しなければならない.EX)エンドポイントを使用して、変更されたリソースをエンドポイントとして使用します.
- Request
Post https://API/user/baek HTTP/1.1
[헤더생략]
{
"Date":"2021-10-19"
"unsername":["baek"]
}
- Response
HTTP/1.1 200ok
[헤더생략]
{
"slots":[{"username":"baek",
"job":"programeer"]
}
!!!)ステップ2:ステップ2では、HTTPメソッドGET、POST、PUT、DELETEを使用してCRUDを表し、メッセージにはStatus Codeも含まれて返される.- Request
Get https://API/user/baek HTTP/1.1
[헤더생략]
- Response
HTTP/1.1 201 Created
[헤더생략]
{
"slots":[{"username":"baek",
"job":"programeer"]
}
!!!)ステップ3:最後のステップでは、「ハイパーテキスト」(Hypertext As)「エンジン適用状態」(Engine Of Application State)の略で表されるハイパーメディアコントロールを適用します.ステップ3の要求は、ステップ2の要求と同じであるが、応答は、リソースURIを含むリンク要素を挿入することによって作成される.- Request
Get https://API/user/baek HTTP/1.1
[헤더생략]
- Response
HTTP/1.1 201 Created
[헤더생략]
{
"slots":[{"username":"baek",
"job":"programeer"]
"links":{
...}
}
2. Open API
誰かが作ったBack-endストリングで、アドレスと使用ルールが公開されています.これにより、任意の開発者がOpenAPI構成フロントエンドを介して必要なデータを使用することができる.
TIP)便利なOpen API URL
https://openweathermap.org/
ホームページに登録すると、会員が加入すると天気APIが便利に利用できます.
https://developers.kakao.com/
Kakao openAPIでは複数のKakao機能を実現できる.
https://www.data.go.kr/
公共データポータルサイトとして、韓国の各種情報はOpen APIを通じて実現されている.
Reference
この問題について(Network)API), 我々は、より多くの情報をここで見つけました https://velog.io/@baek1008/NetworkAPIテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol