RESTful APIの設計:構造化APIの構築
6364 ワード
おい、歓迎👋, アプリケーションまたはAPIのAPIをいくつか構築しているかもしれませんが、スケーラブルでメンテナンス可能なAPIを構築するための5つの手順に従います.あなたが5ステップ手順に気づいていないならば、心配しないでください、私はしばらく彼らをあなたを連れて行きます.
前に移動する前に、私はあなたにそれらを超迅速に教えてみましょうAPIで働いたことがない.ホテルの例を取る(これは最も一般的で有名な例です知っている).あなたはホテルに行って直接キッチンに急いではいけない?あなたはウエイターに注文します.それからウェイターはマネージャーに行って、注文のために台所に行きます.その後、コックは料理を管理カウンターに送り、ウェイターはあなたにそれを送ります.ここでウェイターはAPIとしてデータを要求し、それからAPIサーバデータをあなたに応答します.より良い理解のために以下のイメージを見てください.
RedHatによると、RESTful APIは
そして、これはかなり自明です.しかし、我々の現在の焦点は「簡単なステップでRESTful API Design」です.
これは、多くの時間(特に初心者として)が発生しますが、データの人々を定義する一方で、データの量が少ないときに、すべてのデータを便利に感じることができる単一のフィールドとしてすべてのデータを置く傾向がありますが、それはすべてのスケーラブルではなく、長期的に維持可能です
解決策は、1つのカテゴリーでそれを大きくて乱雑にしているすべてのデータを加える代わりに、役に立つと別々のカテゴリーにデータを分離しています.以下のデータを見てみましょう
悪い例
良い例
データを取得するためにURLまたはエンドポイントを公開します.エンドポイントは、すべてのデータを取得したり、そのオブジェクトについてのデータの1ブロックのみを使用したり、ユースケースのシナリオに一致するものを使用することができます.次のステップ(3ステップ)で見るこのURLを公開する上でいくつかの規則があります.
これまでに多くのより良いURL/エンドポイントの露出コンベンションは、現在使用していると思うか?そのことについて話しましょう.私が大会であることを言う前に、私はあなたに終点であることをあなたに教えさせました?
エンドポイントは、単にリクエストの型に基づいて返されるデータを示すURLです.
さて、大会は何ですか.学校の例を挙げましょう.それで、あなたが学生管理アプリケーションのためにAPIを作っていると考えてください、あなたが露出する可能性があるエンドポイントは何ですか しかし、私があなたに言うならば、これは最もスケーラブルで保守的な方法でありません?では、従来の方法は何ですか?
慣例は、あなたが終点を定義するために動詞を使うべきではなく、代わりに名詞を使うべきであると言います.いいえ、これは英語のレッスンの一部ではありませんが、我々は前進するように理解します.だから、同じ学生の例を取りましょう.
さあ
現在、この慣例ははるかにスケーラブルで扱いやすいです.
JSONはデータ転送のための最も好ましい言語です、そして、それは大部分のAPI応答で見つかります.しかし、ユーザにデータを送る前に、単に新しいオブジェクトを作成して、それにステータスを加えて、それから別々のデータ・オブジェクトの下で元のデータを加えるべきです.これは封筒と呼ばれます.そして、応答の送信のこの標準はJSendとして知られています.(多くの基準がありますが、これは私が一番好きです).例えば、以下を見てください
データの直接送信
データを包み込み、応答ハンドラで/を送信します
APIはstatelessでなければなりません.そして、それはすべてがクライアントと側で行われなければならないことを意味します.たとえば、次のページに移動し、次のページ(
行われた円周-円周-円周-!ものすごい、あなたは現在それがよりスケーラブルで維持可能になるように、あなたの現在のAPIを構成するべきである方法のしっかりした理解を持っています.あなたが混乱しているか、いくつかの質問があるならば、私に以下のコメントで知らせてください.
閉じるこの動画はお気に入りから削除されています
ここの私の社会の上で私を捕えてください:https://bio.link/kaiwalya
APIとは
前に移動する前に、私はあなたにそれらを超迅速に教えてみましょうAPIで働いたことがない.ホテルの例を取る(これは最も一般的で有名な例です知っている).あなたはホテルに行って直接キッチンに急いではいけない?あなたはウエイターに注文します.それからウェイターはマネージャーに行って、注文のために台所に行きます.その後、コックは料理を管理カウンターに送り、ウェイターはあなたにそれを送ります.ここでウェイターはAPIとしてデータを要求し、それからAPIサーバデータをあなたに応答します.より良い理解のために以下のイメージを見てください.
RESTful APIとは
RedHatによると、RESTful APIは
A REST API (also known as RESTful API) is an application programming interface (API or web API) that conforms to the constraints of REST architectural style and allows for interaction with RESTful web services. REST stands for representational state transfer and was created by computer scientist Roy Fielding.
そして、これはかなり自明です.しかし、我々の現在の焦点は「簡単なステップでRESTful API Design」です.
RESTful APIデザイン
1 .別々のAPI (データ)を論理的なリソースにします:
これは、多くの時間(特に初心者として)が発生しますが、データの人々を定義する一方で、データの量が少ないときに、すべてのデータを便利に感じることができる単一のフィールドとしてすべてのデータを置く傾向がありますが、それはすべてのスケーラブルではなく、長期的に維持可能です
解決策は、1つのカテゴリーでそれを大きくて乱雑にしているすべてのデータを加える代わりに、役に立つと別々のカテゴリーにデータを分離しています.以下のデータを見てみましょう
悪い例
{
"id1":1,
"name1":"abc",
"id2":2,
"name2":"def"
}
良い例
{
0:{
"name":"abc"
},
1:{
"name":"def"
}
}
構造化されたリソースベースのURLの
データを取得するためにURLまたはエンドポイントを公開します.エンドポイントは、すべてのデータを取得したり、そのオブジェクトについてのデータの1ブロックのみを使用したり、ユースケースのシナリオに一致するものを使用することができます.次のステップ(3ステップ)で見るこのURLを公開する上でいくつかの規則があります.
利用方法http (動詞)
これまでに多くのより良いURL/エンドポイントの露出コンベンションは、現在使用していると思うか?そのことについて話しましょう.私が大会であることを言う前に、私はあなたに終点であることをあなたに教えさせました?
エンドポイントは、単にリクエストの型に基づいて返されるデータを示すURLです.
さて、大会は何ですか.学校の例を挙げましょう.それで、あなたが学生管理アプリケーションのためにAPIを作っていると考えてください、あなたが露出する可能性があるエンドポイントは何ですか
.../addStudents
.../getStudents
.../updateStudent
.../deleteStudent
慣例は、あなたが終点を定義するために動詞を使うべきではなく、代わりに名詞を使うべきであると言います.いいえ、これは英語のレッスンの一部ではありませんが、我々は前進するように理解します.だから、同じ学生の例を取りましょう.
さあ
.../addStudents
の代わりに、我々はPOST /students
(学生へのポスト要請)を使用することができます.../getStudents
の代わりに、我々はGET /students
(学生に要請を得る)を使用することができます.../updateStudent
の代わりに、我々はPATCH /students
またはPUT /students
を使用することができます.../deleteStudent
の代わりに、DELETE /students
(学生への要求を削除する)を使用できます現在、この慣例ははるかにスケーラブルで扱いやすいです.
JSON (通常)
JSONはデータ転送のための最も好ましい言語です、そして、それは大部分のAPI応答で見つかります.しかし、ユーザにデータを送る前に、単に新しいオブジェクトを作成して、それにステータスを加えて、それから別々のデータ・オブジェクトの下で元のデータを加えるべきです.これは封筒と呼ばれます.そして、応答の送信のこの標準はJSendとして知られています.(多くの基準がありますが、これは私が一番好きです).例えば、以下を見てください
データの直接送信
{
"name":"abc",
"age":"6"
}
データを包み込み、応答ハンドラで/を送信します
{
"status" : "success",
"data" : {
"name":"abc",
"age":"6"
}
}
5 .ステートレス
APIはstatelessでなければなりません.そして、それはすべてがクライアントと側で行われなければならないことを意味します.たとえば、次のページに移動し、次のページ(
.../nextpage
)のエンドポイントを押すだけで、サーバーは、現在のページを覚えている必要がありますたびに、次のページに応じて、サーバーを計算します.代わりに、6がページである.../user/page/6
をすることができます、そして、あなたが7ページに行きたいならば、あなたはちょうどクライアントの側で扱う1
に6
を加える必要があるだけです.行われた円周-円周-円周-!ものすごい、あなたは現在それがよりスケーラブルで維持可能になるように、あなたの現在のAPIを構成するべきである方法のしっかりした理解を持っています.あなたが混乱しているか、いくつかの質問があるならば、私に以下のコメントで知らせてください.
読書ありがとうございます💖
閉じるこの動画はお気に入りから削除されています
ここの私の社会の上で私を捕えてください:https://bio.link/kaiwalya
Reference
この問題について(RESTful APIの設計:構造化APIの構築), 我々は、より多くの情報をここで見つけました https://dev.to/kaiwalyakoparkar/restful-api-design-building-structured-api-s-in-5-easy-steps-1f9nテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol