ASP.NET WebAPI の予備知識: HTTP と RestfulAPI

PHPz
リリース: 2017-04-04 15:51:05
オリジナル
2746 人が閲覧しました

HTTP プロトコルの基本を理解することは、RestFul スタイル API を理解して使用するための基礎となります。これらの基本を理解すると、さまざまな RestFul 開発 フレームワーク を快適に使用できるようになります。 WebApi を使い始めたときは、この知識が理解できていなかったために使いにくいと感じましたが、これらの HTTP の知識に慣れて初めて、WebApi を開発するのに快適に感じました。 RestFul スタイル API は、HTTP プロトコルを適切にサポートし、HTTP の完全なセマンティック スタイルを実装する API です。

この知識を紹介する前に、多くの人が抱いている誤解、つまり HTTP 述語とデータ送信方法について強調しておく必要があります。ほとんどの人が Web サイトを作成する際に使用する HTTP プロトコルは、一般的な WEB アプリケーションでは GET と POST の 2 つの述語のみを使用しており、この習慣の下では、多くの人がいくつかの述語を使用します。奇妙な認識: HTTP プロトコルは Web サイト開発にのみ適しています。HTTP 呼び出しのデータ転送は GET/POST の 2 つだけです。この認識の下では、RestApi はあまり目立たないスタイルで開発されます。また、ASP.NET WebAPI を使用すると、平凡に表示され、問題が発生します。まず、Web サイトでのデータのやり取りは HTTP 使用の 1 つのシナリオにすぎず、HTTP はさまざまな形式のデータを転送できることを認識する必要があります。

HTTP の最初の行から始めましょう: HTTP の最初の行には、述語、URL、HTTP プロトコルのバージョンという 3 つの情報が含まれています。 3 つのデータはスペースで区切られます。補足説明: RESTFUL API は非常に重要な要素であり、Web API では、デフォルトのルーティング メソッドとして述語を使用し、「削除、変更、確認」という 4 つのアクション (POST と PUT は、さまざまなデータの追加と変更に使用されます) です。常に異なる意見があります。実際には少し混乱しています...PUT は冪等な操作であるという定義がありますが、PUT は変更に重点を置き、POST は増加に重点を置きます。最も一般的に使用される述語は次の 4 つで、別のセマンティクスを持つ他にも述語があります:

HEAD: 本体を除く、対応するヘッダーのみが返されます TRACE: データ送信プロセスの診断

OPTIONS: Web のリクエストサーバーがサポートするさまざまな関数を通知します必要に応じて、関連するドキュメントを

クエリ

できますが、それらは一般的には使用されません。

このうち、GET と DELETE には BODY が含まれませんが、PUT と POST には BODY が含まれる可能性があります。また、述語に BODY を使用した GET などのセマンティクス外の操作が含まれている場合、POST を使用してリソースを

削除

します。この操作は述語の オーバーロード と呼ばれますが、HTTP は述語の再読み込みをサポートできます。 . がロードされますが、標準のセマンティクスに準拠していないため、その使用はお勧めできません。

URL: URL はリソースを定義します。たとえば、www.example.com/person はリソースとして person を定義し、上で紹介した述語と組み合わせて、person に対する一連の操作を提供します:

GET www.example / person/1 は ID 1 のユーザーの情報を取得します

use using using using using using through through through out through ‐ out through off off ‐ ‐ ‐ ‐‐ ‐ 、および 人の説明が含まれています)更新

個人リソース

使用 - - ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ −--.1契約、HTTP2.0プロトコルは普及段階にあり、まだあまり使われていません。 HTTP1.0 と HTTP1.1 の違いは非常に小さく、その違いは RestFul に大きな影響を与えません。具体的な違いについては、関連ドキュメントを確認してください。

これは HTTP の最初の行です。次に改行する HTTP HEAD 部分が HTTP リクエストとレスポンスを記述します。 HTTP HEAD は HTTP プロトコルの最も重要な部分だと思います。これには、エンコーディング、BODY 長、コンテンツ ネゴシエーションなどの情報が含まれています。また、いくつかのカスタム情報を含めることもできます。 RestFul API で一般的に使用される HEAD をいくつか紹介します。

User-Agent: ユーザー エージェント、IE、Chrome、Fiddler などのクライアント。 :ドメイン名(HOST は通常、サーバーのサイト バインディングに使用され、通常は URL のドメイン名と同じです。ただし、一部のカスタマイズされた DNS 使用方法では、HOST 内のドメイン名と URL が一致しない場合があります) 認可: 検証このフィールドには、ユーザー検証のための情報を含めることができます。表現方法は次のとおりです: schema authorinfo (スペースで区切られます)。ここで、schema は検証方法を表し、authorinfo は検証情報を表します。Base: authorinfo などの一般的なスキーマでは、ユーザー名とパスワードを使用します。 、Base64でエンコードされています。または、

Session

と同様にトークンを使用します。

Accept: 返されたデータを受け入れるシリアル化メソッド。MIME で表現され、応答データのコンテンツ ネゴシエーションに使用されます。application/json、application/

xml

など、優先順位に従って配置された複数の MIME を含めることができます。 、text/html; サーバーが返すことができる特定のタイプのデータは、サーバーのサポートによって異なります。bson、protocolbuffer などのカスタマイズされた MIME が必要になる場合もあります。 MIME をカスタマイズしたり、サーバー側で独自の実装を開発したりできます。これらの特別な拡張機能には、ASP.NET WebApi に対応する拡張ポイントがあります。 Content-Type: MIME 表現を使用して、送信されるリクエストの本文のシリアル化メソッドを示します。一般的なものは application/json と application/x-www-form-urlencoded で、これは最も一般的に使用されます。それらはすべて、リクエストとレスポンスに現れるボディ部分のシリアル化メソッドを表しており、HTTP プロトコルの中心となる部分が非常に多く設定され、使用されます。詳細が多すぎます。上記の内容を紹介するすべての資料は、Rest API のコンテンツ ネゴシエーションで見つけることができます。最初に Rest の使い方を学習している人はよく混乱します。Accept と Content-Type は受け入れるデータの種類を示し、Content-Type は 2 つのヘッダーの機能と違いを覚えておいてください。現在のリクエストのボディ。 ASP.NET WEBAPI では、要求に Content-Type はあるが ACCEPT がない場合、Content-Type のコンテンツが応答のコンテンツ ネゴシエーションとしてデフォルトで使用されます。応答ヘッダーと要求ヘッダーの最大の違いは、応答の最初の行に HTTP コードがあることです。として重要なAPI 呼び出しの

ステータス

の表示。REST API で最も一般的に使用される ステータス コード は、通常、2XX、4XX、5XX の 3 つのセグメントであり、1XX は作業が継続されることを意味し、3XX は通常は使用されないことを意味します。 REST API に多くの機能があります。最も一般的に使用される 3 つのステータス セグメントのうち、2XX は実行の成功を示し、4XX はクライアント データ エラー (パラメータ検証の失敗など) を示し、5XX は未処理の例外 (データベース接続エラーなど) などのサーバー側の処理エラーを示します。これらのステータスコードにより、API 呼び出しの実行状態を初期判断できます。

ヘッダーの後には空白行 (rn) があり、その後にコンテンツが続きます。ここには特定のビジネス データがあり、JSON、XML、さらには HTML など、さまざまな Content-Type に応じたさまざまなシリアル化メソッドで表されます。 HTTP API を学ぶと、Web アプリケーションも HTTP のアプリケーションであると考えることができますが、対話メソッドは一般的にリクエストとして application/x-www-form-urlencoded を使用し、レスポンスとして text/html を使用します。 RestAPI は他の多くのコーディング方法と連携でき、より広範なサポートを備えています。Web アプリケーションは HTTP 送信を使用するアプリケーション シナリオにすぎず、Web ページを分離することはできません。 Nancy はこれを ASP.NET よりもうまく行っていると思います。Nancy は Web ページから RestAPI を分離しませんが、ASP.NET は MVC と WEBAPI を使用して 2 つを分離します。データをリクエストするには、Json データが返されることを要求できます。 application/json を使用する場合は Web ページが返されますが、text/html を使用する場合は、当然ながら、これら 2 つのアプリケーション メソッドを切り取ったり結合したりすることには、それぞれ長所と短所があります。

HTTP プロトコルについてはあまりにも少ないので、興味のある方はご自身で検索してみてください。 WEB API のよく使われる部分だけを書きました。以下の知識を確認してください:

以上がASP.NET WebAPI の予備知識: HTTP と RestfulAPIの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!