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など)が含まれる場合があります.この場合、コードはリクエスト時のみ実行する必要があります.
  • REST API設計ガイドライン

  • リソース(URL)
    リソースを説明するには、アクション動詞ではなく具体的な名前を使用する必要があります.
    GET/users/1234, POST/users
    URIキャビネット
    プログラムリソースの命名には、次の3つの主要なタイプのルールがあります.
    CamelCase:最初のアルファベットは大文字(強調表示開始)を使用します.
    SnakeCase:単語を「」で区切ってスケール
    sphine-Case:「-」はSnake Caseに似ています

  • HTTPメソッド
  • 名前機能GetURLを使用して情報を検索する場合はHeadGetを使用するのと同じですが、Postデータをサーバに送信するPutターゲットリソースのすべての現在の表現をアップロードコンテンツを使用してPatchリソースを少し更新する場合に使用するのはステータスバーとタイトル部分のみです.べき乗等号DeleteURLが提供するターゲットリソースのすべての現在の表示削除オプションは、ターゲットリソースの通信オプションを示します.
    TIP)PutとPostの違い
  • Put要求この場所のリソースをすべて
  • に置き換える.
  • Patch
  • を使用してリソースの一部を変更
  • HTTPヘッダ
  • HTTPヘッダフィールドは、要求、応答またはメッセージ本文で送信されたオブジェクトに関する必須情報を提供する
    3.1 General Header:一般的に要求と応答メッセージに適用される
    3.2クライアント要求リーダ:要求メッセージにのみ適用
    3.3サーバ応答Header:応答メッセージのみ
    3.4エンティティヘッダー:エンティティ-マスター情報を定義するか、Bodyがない場合、識別を要求するリソースの情報を定義します.

  • query列挙変数
    4.1パッケージング:API初期設計段階において、予測リソースのページングが必要である.
    返されるデータ量の進捗を予測しにくい場合は、デフォルト値としてリソースを選択したほうがいいです.
    4.2フィルタ:特定の属性と予想値を指定することで、クエリーのリソース数を制限します.
    4.3 Sorting:ソートパラメータは、ソートを実行する属性の名前をカンマ(,)で区切る必要があります.
    4.4検索:検索に関する推奨、変更、および情報を、リソースおよびコレクションとは異なる形式で追加します.

  • ステータスコード


  • REST APIを作成する際には、いくつかのルールがあり、そのために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を通じて実現されている.