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

JavaScriptコアデータ型は、ブラウザとnode.jsで一貫していますが、余分なタイプとは異なる方法で処理されます。 1)グローバルオブジェクトはブラウザのウィンドウであり、node.jsのグローバルです2)バイナリデータの処理に使用されるNode.jsの一意のバッファオブジェクト。 3)パフォーマンスと時間の処理にも違いがあり、環境に従ってコードを調整する必要があります。

javascriptusestwotypesofcomments:シングルライン(//)およびマルチライン(//)

PythonとJavaScriptの主な違いは、タイプシステムとアプリケーションシナリオです。 1。Pythonは、科学的コンピューティングとデータ分析に適した動的タイプを使用します。 2。JavaScriptは弱いタイプを採用し、フロントエンドとフルスタックの開発で広く使用されています。この2つは、非同期プログラミングとパフォーマンスの最適化に独自の利点があり、選択する際にプロジェクトの要件に従って決定する必要があります。

PythonまたはJavaScriptを選択するかどうかは、プロジェクトの種類によって異なります。1)データサイエンスおよび自動化タスクのPythonを選択します。 2)フロントエンドとフルスタック開発のためにJavaScriptを選択します。 Pythonは、データ処理と自動化における強力なライブラリに好まれていますが、JavaScriptはWebインタラクションとフルスタック開発の利点に不可欠です。

PythonとJavaScriptにはそれぞれ独自の利点があり、選択はプロジェクトのニーズと個人的な好みに依存します。 1. Pythonは、データサイエンスやバックエンド開発に適した簡潔な構文を備えた学習が簡単ですが、実行速度が遅くなっています。 2。JavaScriptはフロントエンド開発のいたるところにあり、強力な非同期プログラミング機能を備えています。 node.jsはフルスタックの開発に適していますが、構文は複雑でエラーが発生しやすい場合があります。

javascriptisnotbuiltoncorc;それは、解釈されていることを解釈しました。

JavaScriptは、フロントエンドおよびバックエンド開発に使用できます。フロントエンドは、DOM操作を介してユーザーエクスペリエンスを強化し、バックエンドはnode.jsを介してサーバータスクを処理することを処理します。 1.フロントエンドの例:Webページテキストのコンテンツを変更します。 2。バックエンドの例:node.jsサーバーを作成します。

PythonまたはJavaScriptの選択は、キャリア開発、学習曲線、エコシステムに基づいている必要があります。1)キャリア開発:Pythonはデータサイエンスとバックエンド開発に適していますが、JavaScriptはフロントエンドおよびフルスタック開発に適しています。 2)学習曲線:Python構文は簡潔で初心者に適しています。 JavaScriptの構文は柔軟です。 3)エコシステム:Pythonには豊富な科学コンピューティングライブラリがあり、JavaScriptには強力なフロントエンドフレームワークがあります。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

WebStorm Mac版
便利なJavaScript開発ツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

ドリームウィーバー CS6
ビジュアル Web 開発ツール
