[ REST API ]


API (Application programming interface)



アプリケーションやサービスの開発に必要なオペレーティングシステムやライブラリなどの特定の機能を抽象的に使いやすいインタフェースです.
何の話だ?簡単に言えば、APIはレストランメニューです.あなたは五徳madeカフェに行きました.メニューを見に行って、給油オムライスを注文しました.じゃ、台所で給油オムライスを作ってあげます.
これにより、APIは、特定のサービスを提供するプログラミングセットとして使用できるプログラミングインターフェースのリストを有し、呼び出しによって使用される.Webアプリケーションを実装するには、NAVERログインが必要であるとします.これにより、NAVERが提供するOpenAPIからNAVERのログイン機能を呼び出して連動することができる.

OpenAPI



オープンAPIまたはオープンAPIとは、開発者にプライベートアプリケーションソフトウェアまたはWebサービスのプログラミング権限を提供する任意の開発者が使用できる公開APIを指す.
つまり、すべての人に公開されているAPIです.

APIタイプ


APIはアクセス権によって3種類に分けられる.種類というより、指定者に近い内容です.

1. private API


内部API、露出しない自分の製品やサービスを改善するために、内部で使うのが一般的です.private APIで発行され、途中でgatewayを使用する場合もあります.

2. public API


public APIはオープンAPIであり、すべての人に公開されるAPI形式である.

3. partner API


パートナーAPIは、通常、ビジネス関係で使用され、パートナー企業間でソフトウェアを統合するために使用されるライセンスユーザーによって共有されるAPIです.

REST (REpresentational State Transfer)



RESTはグローバルブロードバンドなどの分散型スーパーメディアシステム向けのソフトウェアアーキテクチャ形式である.リソースを名前(リソースの表示)に分割し、そのリソースステータス(情報)を交換するすべての内容を表します.
簡単に言えば,APIを構築する際にURIとHTTP手法を用いてアーキテクチャを構築し,APIの機能を推測できるようにする.RESTの原則に従うAPIだけがRESTful APIの栄光を得ることができる.つまり、このAPIはRESTfulです.

RESTコンポーネント


1.リソース-URI


すべてのリソースには独自のアドレスがあり、サーバ上に存在します.我々はURIによってリソースを区別して呼び出す.

2.動作(Verb)-TTP方法


ネット上で起こった行為は明らかではないでしょうか.CRUDです.HTTPメソッドを設定することができます.
HTTPメソッドは、主にサーバにデータを追加するためのPOTCREATE操作の方法を説明する.GETREADオペレーションの方法で、主にサーバからデータを取得するために使用されます.主にサーバデータの更新に使用されるPUTPDTE操作方法.(ターゲットデータが完全である場合)PATCHUPDATE動作の方法であり、主にサーバデータの更新に用いられる.(ターゲットデータが一部の場合)DELETEDELETE操作の方法であり、主にサーバデータの削除に用いられる.

3.表示方法


ブラウザとWebサーバ間のデータ交換形式はJSON,XML,TEXT,RSSなどである.通常JSON、XMLでデータ交換を行います.JSONと書きましょうこれは最高です

REST特性


1.サーバ-クライアント構造(サーバ-クライアント)


サーバとクライアント構造、これはWebサービスの共通点ではないでしょうか.これが特徴です...

2.ステータスなし


HTTPプロトコルを使用しているため、HTTPの特徴:無状態性.この文章を確認してほしい.HTTP-Request/Response

3.キャッシュ可能


HTTPプロトコルで使用されている最新の変更されたTagまたはE-Tagを使用してキャッシュをサポートします.これもHTTPの特徴です...

4.階層化システム


すなわち,クライアントとサーバのみに構成でき,ゲートウェイやエージェントサーバなどのミドルウェアを階層化することができる.

5.インタフェースの一貫性


これは、URIとして指定されたリソースの要求を統一して定義するアーキテクチャスタイルを意味する.

6.自己記述


これはURIを解析するだけでどのような機能であるかを推定できる特性である.

RESTメリットとデメリット


長所

  • HTTPインフラストラクチャインフラストラクチャREST APIのインフラストラクチャを構築する必要はありません.
  • HTTP規格に準拠しているため、複数の付加機能を使用することができる.
  • HTTPをサポートするすべてのプラットフォームが使用できます.
  • スーパーメディアAPIの汎用性を確保します.
  • REST API URIは、機能を簡単に理解できるように、意図を明確に示しています.
  • の機能統合により、複数のサービスを統合する際の設計上の問題を最小限に抑えることができます.
  • サーバとクライアントの役割を明確に区別します.
  • 短所

  • 規格自体は存在せず、定義が必要である.△だから、君のやり方次第だ.
  • HTTPメソッドの形式は限られている.(GET, POST, PUT, PATCH, DELETE)
  • テストでは専門性が要求されます.(HTTP付加情報の設定、例えばHeader、dataType等)
  • 旧式ブラウザは互換性がなく、多くの動作がサポートされていません.(古いIEを捨てろ)
  • REST API



    RESTの原則に基づいて実現されたAPIであり,最大の特徴は各リクエストがどのような動作や情報のためであるかであり,このリクエスト自体が推定できることである.
    だからAPI呼び出しURIを分析すれば、何をしているのかが分かるし、予測できる形態がREST APIである.

    REST API設計規則


    ルールというより、勧告事項です.

    1.URIは動詞ではなく名詞を使い、大文字ではなく小文字を使う。

    🤮 BAD  - https://velog.io/@carrotsman91/putShit/
    😀 GOOD - https://velog.io/@carrotsman91/shit/

    2.最後にスラッシュ(/)は含まれません。

    🤮 BAD  - https://velog.io/@carrotsman91/putShit/
    😀 GOOD - https://velog.io/@carrotsman91/shit

    3.下棒(-)の代わりにダッシュ(-)を使用します。

    🤮 BAD  - https://velog.io/@carrotsman91/carrots_shit
    😀 GOOD - https://velog.io/@carrotsman91/carrots-shit

    4.行為を含まない。

    🤮 BAD  - https://velog.io/@carrotsman91/delete-carrots/1
    😀 GOOD - https://velog.io/@carrotsman91/carrots/1

    5.ファイル拡張子はURIに含まれません。

    🤮 BAD  - https://velog.io/@carrotsman91/carrotsShit.jpeg
    😀 GOOD - https://velog.io/@carrotsman91/carrotsShit

    RESTful



    これはREST原理に従うシステムを意味するが,全員がRESTを使用しているわけではない.RESTfulシステムはREST APIの設計規則を正しく守っていると言える.
    規定集があるみたいですね~はは.

    SOAP (Simple Object Access Protocol)



    通常、XMLベースのメッセージをHTTP、HTTPS、SMTPなどを介してコンピュータネットワーク上で交換するプロトコルである.
    RESTを説明している間にたまにSSOAPに言及していたのでまとめてみました.まずこいつらが比較対象にならないのはRESTが開発原則、SOAPがプロトコル.まず、SOAP自体が最初の標準プロトコルであり、他の言語で他のプラットフォームで構築されたアプリケーションで通信することができます.一言で言えばJAVAプログラムがC#APIを呼び出す.しかし、テキストを見るだけで重いことがわかり、設定する必要がある基準が多い.面倒くさい奴...

    整理する


    RESTとRESTの原則を適用したAPI,模範的に遵守したRESTfulを理解した.SOAPについての時間しか見ていませんが後で詳しく紹介します要するに、RESTfulは、特定の実装体ではなく、RESTの原則を遵守するフラグである.
    今晩は干し海鮮麺です.🥕
    注意:https://khj93.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-REST-API%EB%9E%80-REST-RESTful%EC%9D%B4%EB%9E%80
    https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
    https://dev-coco.tistory.com/97#REST-REpresentational%--State%--Transfer-%EB%-E%--%-F