REST API


REST API

  • 情報開発者において広く使用されるフォーマット、フォーム(技術、製品x)
  • HTTPリクエストを送信する場合、どのurIをどのような方法で処理するかは、開発者によく知られているルールです.
  • 形式なので、技術にこだわらない
    →任意のプラットフォーム、任意の言語またはソフトウェアの間でHTTP情報交換がある場合はrestルールを守ってください.
    restfulサービス
  • を作成できます.
    RESTとは?
    Representational State Transfer
  • web上に存在するすべてのリソース(画像、ビデオ、データベースリソース)に対して一意のURIを付与して利用する」ということは、リソースを定義し、リソースにアドレスを指定する方法論を意味する.
  • HTTP URIによりリソースを指定し、このリソースに対してHTTPメソッドによりCRUDオペレーションを適用する.
  • RESTful APIとは?
    RESTルールに従って設計されたAPI

    API


    インタフェースとは?


    機器を製造する際には、ユーザーがこれらの機能を使用できるように制御装置(==インタフェース)を備えなければならない.
    *機能操作だけでなく、情報を受信するためのインタフェースもあります.
    TV-リモコン、画面
    コンピュータ-キーボード、マウス、ディスプレイ
    自動販売機-ボタン

    ソフトウェアインタフェースとは?

  • WebまたはUI(UI)により、アプリケーションが情報を制御および表示できる
    ex)ボタン、スクロールバー、スライダ、ブラウザウィンドウ
  • は表示されず、ソフトウェアは、指定されたフォーマットで他のソフトウェアからコマンドを要求および受信することができる=アプリケーションプログラミングインターフェース(API)
    ex)気象局サーバを介して気象情報を受信するWeb・アプリケーション
    ex) web API, Window API
    システムやハードウェアについて詳しく知る必要がなく、指定したコマンド言語でアクションを実行できます.
  • 情報、要求動作の指定フォーマットは何ですか?
    関数のパラメータ→情報、機能ユーザの要求
    関数の成果物→情報、機能プロバイダの応答
    =他人が作成した機能関数としてフォーマットに従って作成

    rest API


    クライアントとサーバがデータを要求して転送する場合、今日広く使用されているREST形式のAPIに従います.
    各リクエストがどのような動作や情報のために行われているのか,そのリクエストの様子自体が推定できる.
    RESTful APIは,要求されたアドレスを送信するだけで要求の用途を大まかに知ることができる.

    rest apiの2つの基本規則


    URIは表現リソースに焦点を当て,行動の定義はHTTP法によりREST APIを設計する中心ルールである.

    1.URIは情報のリソースを表す必要があります。


    URIとは?
    すべてのリソースに一意のIDがあり、IDはサーバ上に存在します.
    クライアントは、各リソースのステータスを操作するためにサーバに要求を送信します.
    HTTPでこれらのリソースを区別するIDは、「Studio/1」のようなHTTP URIである.
  • リソースを構造とともに表す区切り記号
  • ユーザが必要とするデータはuriによって表される.
  • 資源を重点的に表現するため、動詞
  • ではなく名詞を用いる.
    {
    	"topics": [
    		{
    			"id": 1,
          "title": "REST",
          "body": "REST is..."
    		},
        {
    			"id": 2,
          "title": "FETCH",
          "body": "FETCH is..."
    		},
        {
    			"id": 3,
          "title": "JSON",
          "body": "JSON is..."
    		}
    	]
    }
    Collection
    複数のデータ要素は複数の形式を使用します.
    Element
    1つのデータ要素は主にidを使用します.
    名前を使用する場合は、単数形式を使用します.

    2.リソースに対する挙動は、HTTPメソッド(GET、POST、PUT、DELETEなど)として表現される。


    クライアントはURIを使用してリソースを指定し、メソッドを使用してリソースを操作します.HTTPプロトコルは、GET、POST、PUT、DELETEなどの方法を提供する.
  • 情報を加工する4つの方法-CURD
  • サーバにリクエストをrestapiに送信すると、HTTPプロトコルに従って転送されます.
    したがって,httpが持つ方法を用いる.
    1.生成-post
    2.読む
    3.修正-put(完全置換)/patch(局所置換)
    4.削除-delete
  • postは1つのpostですべてのcrudを完了することができますが、誰もがリクエストの意図を簡単に理解できるように、RESTful APIを作成するには、目的に応じて
  • を使い分ける必要があります.

    fetch例


    Fetch()関数は、1番目のパラメータURL、2番目のパラメータでオプションオブジェクトを受信し、応答またはエラーオブジェクトを返します.
    fetch(url, options)
      .then((response) => console.log("response:", response))
      .catch((error) => console.log("error:", error));
    optionsオブジェクトコンポーネント
  • HTTP方式(方法)
  • HTTP要求ヘッダ(ヘッダ)
  • HTTPリクエストエキスパート(body)
  • 応答オブジェクトコンポーネント
  • HTTP応答状態
  • HTTP応答ヘッダ(ヘッダ)
  • HTTP応答専門家(body)
  • // https://jsonplaceholder.typicode.com/posts
    
    [
      {
        "userId": 1,
        "id": 1,
        "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
        "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
      },
      {
        "userId": 1,
        "id": 2,
        "title": "qui est esse",
        "body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
      },
      {
        "userId": 1,
        "id": 3,
        "title": "ea molestias quasi exercitationem repellat qui ipsa sit aut",
        "body": "et iusto sed quo iure\nvoluptatem occaecati omnis eligendi aut ad\nvoluptatem doloribus vel accusantium quis pariatur\nmolestiae porro eius odio et labore et velit aut"
      },
    ]

    GET呼び出し[読み込み]


    招待を受けない→体がない
    fetch("https://jsonplaceholder.typicode.com/posts/1", {
      method: "GET",
    })
      .then((response) => response.json())
      .then((data) => console.log(data));
    
    //
    {
      "userId": 1,
      "id": 1,
      "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
      "body": "quia et suscipit↵suscipit recusandae consequuntur …strum rerum est autem sunt rem eveniet architecto"
    }

    POSTコール[作成]


    bodyに生成するデータを書く
    *userIdは生成時に生成されるので書かない
    fetch("https://jsonplaceholder.typicode.com/posts", {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        title: "Test",
        body: "I am testing!",
        userId: 1,
      }),
    })
    	.then((response) => response.json())
      .then((data) => console.log(data));
    
    //
    {title: "Test", body: "I am testing!", userId: 1, id: 101}
    

    PUT呼び出し[修正]

    fetch("https://jsonplaceholder.typicode.com/posts/1", {
      method: "PUT",
      headers: {
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        title: "Test",
        body: "I am testing!",
        userId: 1,
      }),
    })
      .then((response) => response.json())
      .then((data) => console.log(data));
    
    //
    {title: "Test", body: "I am testing!", userId: 1, id: 1}

    DELETE[削除]を呼び出す


    招待を受けない→体がない
    fetch("https://jsonplaceholder.typicode.com/posts/1", {
      method: "DELETE",
    })
      .then((response) => response.json())
      .then((data) => console.log(data));
    
    //
    {}
    コメントリンク
    https://poiemaweb.com/js-rest-api
    https://hckcksrl.medium.com/rest蘭C 602 c 3324196