ホームページ > ウェブフロントエンド > jsチュートリアル > node.jsとexpressで最初のAPIをコーディングします:REST APIを理解する

node.jsとexpressで最初のAPIをコーディングします:REST APIを理解する

Joseph Gordon-Levitt
リリース: 2025-03-11 00:14:09
オリジナル
356 人が閲覧しました

node.jsとExpress:Rest Apisの理解> >

このチュートリアルシリーズは、最初に休憩の原則と概念を概説します。次に、node.js Expressサーバーで実行され、MySQLデータベースに接続する完全なAPIを作成します。この一連のチュートリアルを完了したら、自信を持って独自のAPIを構築したり、既存のAPIのドキュメントを掘り下げたりできるはずです。

前提条件

このチュートリアルを最大限に活用するには、基本的なコマンドラインの知識を持ち、JavaScriptの基本を理解し、node.jsをグローバルにインストールする必要があります。

休息と安らかなAPIとは何ですか?

表現型状態転送( rest )は、Webサービスの建築スタイルについて説明しています。 RESTには、RESTを実装するシステム間でデータを共有するための一連の標準または制約が含まれています。 RESTは、言語、フレームワーク、またはソフトウェアタイプではなく、抽象的な概念です。

休息についてのゆるい類推は、ビニールの記録コレクションを維持し、ストリーミング音楽サービスを使用することです。物理的なビニールレコードコレクションの場合、コピーを共有および配布するために、各レコードを完全にコピーする必要があります。ただし、ストリーミングサービスの場合、同じ音楽は、曲のタイトルなどの特定のデータを参照することで永続的に共有できます。この場合、ストリーミングミュージックは安らかなサービスですが、ビニールレコードのコレクションは非難されていないサービスです。

API は、アプリケーションプログラミングインターフェイスであり、ソフトウェアプログラムが相互に通信できるインターフェイスです。 Restful API は、休憩の原則と制約に従うAPIにすぎません。 Web APIでは、サーバーはURLエンドポイントを介してリクエストを受信し、通常はJSON形式のデータである応答を返します。

休息原理

6つのガイド制約は、RESTアーキテクチャを次のように定義します。これは、URI標準を使用してリソース、つまりブラウザのアドレスバーに入力できるパスを特定することを意味します。

  • client-server :サーバー(データと操作データ)とクライアント(リクエストと表示の応答)の間に懸念が分離されています。
  • Stateless Interess :各リクエストに関するすべての情報は、個々の要求に含まれており、セッション状態に依存しません。
  • キャッシュ可能:クライアントとサーバーはリソースをキャッシュできます。
  • Hydged System :クライアントは、最終サーバー、またはロードバランサーなどの中間層に接続できます。
  • オンデマンドコード(オプション):クライアントはコードをダウンロードでき、それにより外部の可視性が低下します。
  • リクエストと応答

    https(セキュリティバージョン)から始まるすべてのWebサイトのURLにすでに精通している可能性があります。 HyperText転送プロトコル( HTTP )は、インターネット上のクライアントとサーバー間の通信方法です。

    ブラウザのURLバーで最も明らかに見られますが、HTTPはサーバーからWebサイトを要求するためだけに使用できません。 Web上のURLにアクセスすると、実際にGETおよび他の種類のリクエストを実行しています。

    httpは、 tcp (トランスポートコントロールプロトコル)接続をサーバーポート(HTTP、HTTPS)に開くことでリクエストを行い、リスニングサーバーがステータスとボディを返します。

    リクエストには、URL、メソッド、ヘッダー情報、およびボディが含まれている必要があります。

    リクエスト方法

    HTTP動詞とも呼ばれる4つの主要なHTTPメソッドがあり、一般的にWeb APIとの相互作用に使用されます。これらのメソッドは、特定のリソースで実行されるアクションを定義します。

    http要求方法は、 crud の例にほぼ対応しています。 CRUDはデータベース操作で使用される関数を指しますが、これらの設計原則をRESTFUL APIのHTTP動詞に適用できます。

     <code> curl -i https://www.google.com </code> 
    ログイン後にコピー

    Googleのサーバーは以下を返します:

     <code> http/2 200日:日曜日、2022年8月19日19:06:22 GMT expres:-1 cache-control:pirance、max-age = httepe; 59-1 ... </code> 
    ログイン後にコピー

    200ステータスコードとhttpのバージョンを見ることができます(これはhttp/1.1、http/2またはhttp/3になります)。

    この特定のリクエストはWebサイトを返しているため、Text/HTMLです。 RESTFUL APIでは、Google(Google.comを含めない)へのCURLリクエストが301の応答を返して、リソースをリダイレクトする必要があることを示す場合があります。

    REST APIエンドポイント

    APIがサーバーに作成されると、含むデータにエンドポイントからアクセスできます。 endpoint は、リクエストのリクエストを受け入れて処理できるURLです。

    API URLは、ルート、パス、およびオプションのクエリ文字列で構成されます。

    たとえば、ID 5のユーザーを取得するには、/user/5を使用します。

    REST API Convention

    以下は、安らかなAPIを構築するときに従うべき条約です:

    • エンドポイントはファイル拡張機能を表示するべきではありません:APIはJSONを返してはなりませんが、URLは.JSONで終わりではありません。
    • 動詞の代わりに名詞を使用:たとえば、ユーザーを追加するには、/usersエンドポイントを使用して、/users/addエンドポイントの代わりにpostリクエストを使用する必要があります。 APIは、同じURLに複数のタイプのリクエストを処理できるように開発する必要があります。
    • パスはケースに敏感であり、アンダースコアの代わりに小文字とハイフンを使用する必要があります。たとえば、 /users-listは /users_listよりも好ましいです。

    これらの条約はすべて、従うべき厳格な休息基準がないため、原則を導く原則です。ただし、これらのガイドラインを使用すると、APIが一貫性があり、馴染みがあり、読みやすくなります。

    休息の代替品

    休息は素晴らしいツールですが、場合によっては役立ついくつかの選択肢があります。

    SOAP

    SOAP(Simple Object Access Protocol)は、1998年に作成されたAPIであり、休憩前に非常に人気がありました。それらにはいくつかの大きな違いがあります。まず、SOAPには、応答形式に非常に厳しい制限があります。第二に、SOAPはJSONの代わりにXMLを使用します。これは、レガシーアプリケーションに役立つかもしれませんが、通常は同等のJSONよりも大きく複雑です。最後に、SOAPはHTTPでうまく機能しますが、SMTPなどのプロトコルもサポートしています。

    graphql

    graphqlは、Facebookが作成した新しいAPI形式であり、クライアントが必要なデータをサーバーに正確に通知できるようにすることで、データを取得するために必要なHTTP要求の数を減らすことを目的としています。 URLパスを使用する代わりに、GraphQLにはカスタム構文があり、クライアントが必要とするデータを定義して、クライアントが必要なものを1つのリクエストで取得できます。

    GraphQLの素晴らしい紹介については、このGraphQLチュートリアルをご覧ください。

    結論

    この記事では、休息と安らかなAPIが何であるか、HTTP要求方法と応答コード作業、API URLの構造、および一般的なRESTFul API規則を学びます。次のチュートリアルでは、node.jsを使用してExpressサーバーを設定し、独自のAPIを構築することにより、これらすべての理論を実践する方法を学びます。

    この記事は更新されており、ジェイコブジャクソンの貢献が含まれています。ジェイコブは、ウェブ開発者、ハイテクライター、フリーランサー、オープンソースの寄稿者です。

    以上がnode.jsとexpressで最初のAPIをコーディングします:REST APIを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
    著者別の最新記事
    人気のチュートリアル
    詳細>
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート