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

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

Mar 11, 2025 am 12:14 AM

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

休憩と安らかなAPIの紹介

現代のWeb開発では、RESTやAPIなどの用語に遭遇することがよくあります。これらの用語を聞いたり、APIを使用したりしているが、それらがどのように機能したり、独自のAPIを構築する方法を完全に理解していない場合は、このチュートリアルシリーズはあなたにぴったりです。

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

前提条件

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

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

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

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

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

休憩の原則

6つのガイド制約は、RESTアーキテクチャを次のように定義しています。

  1. 統合インターフェイス:コンポーネントのインターフェイスは同じでなければなりません。これは、URI標準を使用してリソース、つまりブラウザのアドレスバーに入力できるパスを特定することを意味します。
  2. クライアントサーバー:サーバー(データを保存および操作)とクライアント(リクエストと表示の応答)との間に懸念が分離されています。
  3. ステートレスインタラクション:各リクエストに関するすべての情報は、個々のリクエストに含まれており、セッション状態に依存しません。
  4. キャッシュ可能:クライアントとサーバーはリソースをキャッシュできます。
  5. 階層システム:クライアントは、最終サーバー、またはロードバランサーなどの中間層に接続できます。
  6. オンデマンドコード(オプション) :クライアントはコードをダウンロードして、外部の可視性を低下させることができます。

リクエストと応答

https(安全版)から始まるすべてのWebサイトのURLに既に精通している可能性があります。 HyperText Transfer Protocol( HTTP )は、インターネット上のクライアントとサーバー間の通信方法です。

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

HTTPは、サーバーポート(HTTP、HTTPS)へのTCP (輸送制御プロトコル)接続を開くことでリクエストを行い、リスニングサーバーがステータスとボディを返します。

リクエストには、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 date: Sun, 21 Aug 2022 19:06:22 GMT expires: -1 cache-control: private, max-age=0 content-type: text/html; charset=ISO-8859-1 ...</code>
ログイン後にコピー

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

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

REST APIエンドポイント

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

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

  • rootたとえば、 https://www.php.cn/link/9EFA87E164995A7743ECA9AD63029FA4のルートには、プロトコル、ドメイン名、およびバージョンが含まれる場合があります。
  • パス/ユーザー /5:特定のリソースの唯一の場所。
  • Limit = 10などのクエリパラメーター(オプション)は、応答をフィルタリングして10の結果のみを含むように使用されます。

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

REST API契約

Restful APIを構築するときに従うべき慣習を次に示します。

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

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

休息の代替案

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

石鹸

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チュートリアルをご覧ください。

結論は

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

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

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

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? フロントエンドのサーマルペーパーレシートのために文字化けしたコード印刷に遭遇した場合はどうすればよいですか? Apr 04, 2025 pm 02:42 PM

フロントエンドのサーマルペーパーチケット印刷のためのよくある質問とソリューションフロントエンド開発におけるチケット印刷は、一般的な要件です。しかし、多くの開発者が実装しています...

javascriptの分解:それが何をするのか、なぜそれが重要なのか javascriptの分解:それが何をするのか、なぜそれが重要なのか Apr 09, 2025 am 12:07 AM

JavaScriptは現代のWeb開発の基礎であり、その主な機能には、イベント駆動型のプログラミング、動的コンテンツ生成、非同期プログラミングが含まれます。 1)イベント駆動型プログラミングにより、Webページはユーザー操作に応じて動的に変更できます。 2)動的コンテンツ生成により、条件に応じてページコンテンツを調整できます。 3)非同期プログラミングにより、ユーザーインターフェイスがブロックされないようにします。 JavaScriptは、Webインタラクション、シングルページアプリケーション、サーバー側の開発で広く使用されており、ユーザーエクスペリエンスとクロスプラットフォーム開発の柔軟性を大幅に改善しています。

誰がより多くのPythonまたはJavaScriptを支払われますか? 誰がより多くのPythonまたはJavaScriptを支払われますか? Apr 04, 2025 am 12:09 AM

スキルや業界のニーズに応じて、PythonおよびJavaScript開発者には絶対的な給与はありません。 1. Pythonは、データサイエンスと機械学習でさらに支払われる場合があります。 2。JavaScriptは、フロントエンドとフルスタックの開発に大きな需要があり、その給与もかなりです。 3。影響要因には、経験、地理的位置、会社の規模、特定のスキルが含まれます。

Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は?
または:
Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Shiseidoの公式Webサイトのように、視差スクロールと要素のアニメーション効果を実現する方法は? または: Shiseidoの公式Webサイトのようにスクロールするページを伴うアニメーション効果をどのように実現できますか? Apr 04, 2025 pm 05:36 PM

この記事の視差スクロールと要素のアニメーション効果の実現に関する議論では、Shiseidoの公式ウェブサイト(https://www.shisido.co.co.jp/sb/wonderland/)と同様の達成方法について説明します。

JavaScriptの進化:現在の傾向と将来の見通し JavaScriptの進化:現在の傾向と将来の見通し Apr 10, 2025 am 09:33 AM

JavaScriptの最新トレンドには、TypeScriptの台頭、最新のフレームワークとライブラリの人気、WebAssemblyの適用が含まれます。将来の見通しは、より強力なタイプシステム、サーバー側のJavaScriptの開発、人工知能と機械学習の拡大、およびIoTおよびEDGEコンピューティングの可能性をカバーしています。

JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? JavaScriptを使用して、同じIDを持つArray要素を1つのオブジェクトにマージする方法は? Apr 04, 2025 pm 05:09 PM

同じIDを持つ配列要素をJavaScriptの1つのオブジェクトにマージする方法は?データを処理するとき、私たちはしばしば同じIDを持つ必要性に遭遇します...

JavaScriptエンジン:実装の比較 JavaScriptエンジン:実装の比較 Apr 13, 2025 am 12:05 AM

さまざまなJavaScriptエンジンは、各エンジンの実装原則と最適化戦略が異なるため、JavaScriptコードを解析および実行するときに異なる効果をもたらします。 1。語彙分析:ソースコードを語彙ユニットに変換します。 2。文法分析:抽象的な構文ツリーを生成します。 3。最適化とコンパイル:JITコンパイラを介してマシンコードを生成します。 4。実行:マシンコードを実行します。 V8エンジンはインスタントコンピレーションと非表示クラスを通じて最適化され、Spidermonkeyはタイプ推論システムを使用して、同じコードで異なるパフォーマンスパフォーマンスをもたらします。

フロントエンド開発でVSCodeと同様に、パネルドラッグアンドドロップ調整機能を実装する方法は? フロントエンド開発でVSCodeと同様に、パネルドラッグアンドドロップ調整機能を実装する方法は? Apr 04, 2025 pm 02:06 PM

フロントエンドのVSCodeと同様に、パネルドラッグアンドドロップ調整機能の実装を調べます。フロントエンド開発では、VSCODEと同様のVSCODEを実装する方法...

See all articles