RESTの基本とRESTful API開発
Web開発者は頻繁に話しています RESTの原則とRESTfulデータアーキテクチャ, それは現代の発展の重要な側面ですが、時々それは信じられないほど混乱させることができます。 RESTはそれ自体がテクノロジではなく、むしろテクノロジです。 特定の組織原則を使用してAPIを作成する方法. これらの原則は開発者を導き、APIリクエストを処理するためのより普遍的な環境を作ることです。.
この記事では、RESTfulな開発手法を鳥瞰図で説明します。取り組みたい の 何 ではなく どうやって. 私は両方の分野について触れますが、この記事はWeb開発に慣れている人のために作られたものですが、REST APIの概念を理解することはできません。.
Web開発者のためのREST
頭字語のRESTはの略です 代表状態の移管. これはやや混乱を招くように思われるかもしれません、そして、ウィキエントリはそれをさらに混乱させるように聞こえます。しかし、用語を単純化することは可能です.
RESTは一連の データ伝送に使用されるガイドラインとアーキテクチャスタイル. 一般的にWebアプリケーションに適用されますが、ソフトウェアにもデータを渡すことができます.
頭字語APIはApplication Programming Interfaceの略で、次のメソッドです。 他のライブラリやアプリケーションと接続する. Windowsには複数のAPIがあり、TwitterにもWeb APIがあります。ただし、それぞれ異なる目的でさまざまなタスクを実行します。.
まとめると、RESTful APIはRESTアーキテクチャーに従うAPIです。.
RESTアーキテクチャとは何ですか?
これが詳細を決めるのが難しいところです。ただし、次のようなアーキテクチャ上の定数がいくつかあります。
- 一貫性 API全体で
- 無国籍の存在, つまり、サーバーサイドセッションはありません
- の使用 HTTPステータスコード 適切な場において
- の使用 URLエンドポイント 論理階層を持つ
- URLのバージョン管理 HTTPヘッダーではなく
混乱を招く可能性があるW3C HTML 5仕様などの過度に具体的なガイドラインはありません。また、REST用語に関する不確実性のミアズマもありません。.
また、上記のリスト 厳格な規則と見なされるべきではありません。, 最新のRESTful APIにも当てはまりますが.
RESTは 軽量方法論 これはHTTPデータに最適です。これがRESTがWeb上で非常にポピュラーになった理由であり、そしてそれがAPI開発のための最良の選択として広く認められている理由です。.
Vinay Sahniが述べているように, “APIは開発者のUIです.” すべてが使いやすく、優れたユーザーエクスペリエンスを提供するはずです。 RESTful APIはまさにそれを目指しています.
RESTful APIの主な要点
これらのヒントはAPIのコンテキスト内にあります Webアプリケーション専用. この意味は HTTPは必要条件です, そしてそれはしばしばそれを意味します APIデータは外部サーバーでホストされています. RESTful APIがAPIユーザー側でどのように機能するのかを調べてみましょう。.
APIユーザーは、外部APIサーバーに接続するスクリプトを作成できるWeb開発者です。その後、必要なデータがHTTPを介して渡されます。開発者は自分のウェブサイトにデータを表示することができます 外部サーバーに個人的にアクセスすることなく (Twitterのデータを引っ張るように).
一般的に言えば 4つのコマンド 慣れている RESTful APIへのアクセス:
取得する
オブジェクトを取得するため役職
新しいオブジェクトを作成するためのプット
オブジェクトを変更または置換するためのものDELETE
オブジェクトを削除するための
これらの方法はそれぞれ次のようになります。 API呼び出しで渡される サーバーに何をすべきかを伝えるため.
Web APIの大多数 許可するだけ 取得する
リクエスト 外部サーバーからデータを取り出すため。認証はオプションですが、次のような潜在的に有害なコマンドを許可する場合は確かに良い考えです。 プット
または DELETE
.
しかし、これほど多くのRESTful APIはありません。無料のPokémonAPIデータベースであるPokéapiを考えてみましょう。それはまともなレート制限(一定期間にわたって一定数のAPIリクエストにユーザーを制限する)で一般に公開されていますが 取得する
リソースにアクセスするためのメソッド。これは口語的にaと呼ばれるかもしれません 消費専用API.
返品タイプ も重要であり、 均質性を保つ すべてのリソースに対してJSONは適切なデータ構造を説明するオンライン仕様の人気のある戻り型です。.
RESTful APIの使用 APIオブジェクトの名詞, そして アクションを実行するための動詞 それらのオブジェクトに。認証はこの一部であり、レート制限もこの一部です。しかし、非常に単純なAPIは、ユーザーの制限をあまり気にすることなく実現できます。.
APIリソースへのアクセス
パブリックAPIは通常 直接ウェブサイトのアドレスからアクセス可能. これの意味は URL構造は重要です, そして、APIリクエストにのみ使用されるべきです。.
URLによっては、次のようなプレフィックスディレクトリを含めることができます。 / v2 /
以前のAPIの更新バージョン2用。これは1.x APIの価値を下げたくないが、それでも最新の構造を提供したい開発者にとっては一般的なことです。.
私はこの記事のカバーを本当に楽しんだ 基本的なURL構造 と他のサービスからの例.
エンドポイントの 返品データが変わります に劇的に基づいて HTTPメソッド. 例えば, 取得する
コンテンツを取得します 役職
新しいコンテンツを作成します。要求は同じエンドポイントを指す可能性がありますが、結果は大きく異なる可能性があります.
オンラインで例を見てみると、概念をより明確に理解するのに役立ちます。ポケアピはもう見ましたが、他にも 実世界のAPIの例 熟読する:
- Reddit API
- GitHub API
- Flickr API
- Pinterest API
独自のAPIを構築する
あなた自身のAPIを構築するプロセスは軽く取られるべきではありませんが、それはあなたが思うかもしれないほど複雑でもありません。それはかかります API設計パターンとベストプラクティスの理解 本当に価値のあるものを作る.
各APIは サーバーに接続する ある種のデータを返す。そのためにコードを書く必要があるだけでなく、戻りデータをフォーマットする必要もあります。その他の潜在的な要求事項 認証 そして レート制限, だからAPIを構築することは確かに気が弱い人には向いていません。.
しかし、見てみましょう いくつかの基本的な教義 APIアーキテクチャの概要.
エンドポイントを構築する
API開発の一面は エンドポイントの構築. いつ リソースを作成する 動詞ではなく名詞を使用します。これは、APIデータが人、場所、またはものを返すべきであることを意味します、ほとんどの場合それはそれです 特定の属性を持つもの (たとえば、ツイートとそのすべてのメタデータ).
名詞を挙げるのは難しいかもしれませんが、これはAPI開発の重要な側面です。単純化は可能な限り最適です.
大きな議論は 単数形対複数形 名詞もしあなたがTwitter APIを作っていたならば、あなたは最初にオブジェクトグループを持っているかもしれません(すなわちツイート)、次にオブジェクトアイテムを持っています(すなわちツイートID).
$ / tweet / 15032934882934 $ /ツイート/ 15032934882934
この場合は、単数形のほうが見栄えがよいと主張します。これは、特に1つのリソースしか返されない場合に当てはまります。しかし、100%正しい答えは文書化されていないので、自分のプロジェクトに最適なものは何でもしてください。.
返品タイプの設定
別の考慮事項は 戻り型データ. ほとんどのWebユーザーはJSONコンテンツを期待しているので、それがおそらく最良の選択肢です。両方を提供したいのであれば、XMLは別の選択肢です。しかしJSONはWeb開発者の間で基本的なAPI戻り型です.
API開発には他にもたくさんあるので、最初にAPIを試してみることをお勧めします。このようにして、他の開発者がどのように彼らのAPIを構築するかを見ることができ、うまくいけば典型的な要件に慣れるでしょう.
まだ始めたばかりの場合は、これらの開発チュートリアルを省略することを検討してください。
- REST APIチュートリアルサイト
- 単純なREST APIを書く
- RESTful Webサービスを構築する
その他の資料
Webアプリの開発を学ぶための最良の方法は実践を通してです。確かな理論は勉強する価値があります。開発者と会話をし、物事がどのように機能するかを理解できるからです。.
しかし、API開発から始めるのに良い場所は 他のAPIに接続する 最初。クライアントサイド接続の基礎を学び、そこからあなたはゼロからあなた自身のAPIを作成することによってサーバーサイドAPI開発に進むことができます.
それがあなたの目標であれば、あなたの旅に沿って役立つように次のリソースを検討してください.
本
- REST API設計ルールブック
- RESTful Web API
- RESTful Webサービスクックブック
- 邪魔されないREST:完璧なAPIを設計するためのガイド
記事
- HTTPとRESTの初心者向けガイド
- RESTful APIの作成
- RESTfulリソース命名ガイド
- MEANスタックを使用したREST APIの作成