角度での一般的なCRUDサービス:パート2‐CRUDとは?
13047 ワード
カバー写真Tobias Fischer on Unsplash .
この記事は、一般的なCRUDサービスとモデルを角度で作成する方法に関するシリーズの一部です.
👉 パート2 -何がcrudですか?
何がcrudですか?
頭字語から始まる、CRUDは、作成、読み取り、更新、および削除を意味します.これらは、APIを構築するとき、すべてのモデルによって提供されなければならない4つの主要な機能です.
まず、いくつかの基本を説明しましょう.APIは、アプリケーションソフトウェアの構築と統合のための定義とプロトコルのセットです.フロントエンドとバックエンドのコミュニケーションに関する主な契約です.RESTfulであるためにAPIはRESTアーキテクチャスタイルの制約に従うべきであり、RESTful Webサービスとの相互作用を可能にします.RESTは代表的な状態転送のために立って、コンピュータ科学者によってつくられましたRoy Fielding .
それで、RESTful APIについて話して、CRUD機能は通常、HTTPメソッドPOST、GET、PAUT、DELETEに対応します.永続的なストレージシステムの基本的な要素です.
モデル例
記事のこのシリーズは、現実世界のアプリケーションのほとんどのための非常に一般的なモデルを検討する
次のプロパティを使用してモデルを簡素化します.
➡️ クリエイト
我々が我々のシステムで新しいユーザーを作成したいならば、我々は使用します
操作
終点
ステータスコード
ペイロード
レスポンス
➡️ 読める
我々のデータベースからすべての既存のモデルを得るために
操作
終点
ステータスコード
ペイロード:なし
レスポンス
操作
終点
ステータスコード
ペイロード:なし
レスポンス
➡️ 更新
“更新”機能は、既存のユーザーを変更するときに使用されます.我々は、サーバーに更新する値だけを送信することをお勧めします.エンドポイントのパスは「read by id」と似ていますが、
操作
終点
ステータスコード
ペイロード
レスポンス
➡️ 削除
最後に、しかし、少なくとも、我々はIDによって既存のユーザーを削除するのに用いられる「削除」機能を持っています
操作
終点
ステータスコード
ペイロード:なし
レスポンス:
次は何ですか.
参考文献 What is CRUD? Create, read, update and delete ニックス・アニフ✍️
この記事は、一般的なCRUDサービスとモデルを角度で作成する方法に関するシリーズの一部です.
何がcrudですか?
Create, Read, Update, and Delete 👉 CRUD
頭字語から始まる、CRUDは、作成、読み取り、更新、および削除を意味します.これらは、APIを構築するとき、すべてのモデルによって提供されなければならない4つの主要な機能です.
まず、いくつかの基本を説明しましょう.APIは、アプリケーションソフトウェアの構築と統合のための定義とプロトコルのセットです.フロントエンドとバックエンドのコミュニケーションに関する主な契約です.RESTfulであるためにAPIはRESTアーキテクチャスタイルの制約に従うべきであり、RESTful Webサービスとの相互作用を可能にします.RESTは代表的な状態転送のために立って、コンピュータ科学者によってつくられましたRoy Fielding .
それで、RESTful APIについて話して、CRUD機能は通常、HTTPメソッドPOST、GET、PAUT、DELETEに対応します.永続的なストレージシステムの基本的な要素です.
Important note: Keep in mind that this article recommends the most common approaches followed by developers for CRUD regarding responses, status codes, endpoints' paths etc. Follow this article for inspiration to create your rules according your needs. 🚀
モデル例
記事のこのシリーズは、現実世界のアプリケーションのほとんどのための非常に一般的なモデルを検討する
User
.次のプロパティを使用してモデルを簡素化します.
{
"id": 1,
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"createdAt": "2021-09-22T16:21:47.760Z",
"updatedAt": "2021-09-22T16:21:47.851Z"
}
この仮定的なデータベースではid
, createdAt
, and updatedAt
プロパティはサーバのAPIからのみ処理されます.これは重要ではありませんが、次の記事では、すべてのモデルが上記のプロパティを共有していることに気付きます.➡️ クリエイト
我々が我々のシステムで新しいユーザーを作成したいならば、我々は使用します
POST
メソッドとエンドポイントのパスは、ベースがモデル名(通常複数)が続く場合に開始します.応答は返さなければなりません201 - Created
ステータスコード.操作
終点
ステータスコード
POST
/api/users
201(作成)ペイロード
{
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]"
}
レスポンス
{
"id": 1,
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"createdAt": "2021-09-22T16:21:47.760Z",
"updatedAt": "2021-09-22T16:21:47.851Z"
}
➡️ 読める
我々のデータベースからすべての既存のモデルを得るために
GET
ユーザモデルのベースパスでのメソッド.前のエンドポイントと非常に似ていますがPOST
to GET
. また、このメソッドは、データベース内のユーザーを変更することができないので、空のペイロードを受け付けます.最後に、ユーザーとの応答のリストを取得します200 - OK
ステータスコード.操作
終点
ステータスコード
GET
/api/users
200(OK)ペイロード:なし
レスポンス
[
{
"id": 1,
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"createdAt": "2021-09-22T16:21:47.760Z",
"updatedAt": "2021-09-22T16:21:47.851Z"
}
{
"id": 2,
"firstName": "John",
// ...
}
]
もう一つのユースケースはIDによって1つの特定のユーザだけを取得したい場合です.別の違いは、ユーザーのリストを取得する代わりに、応答が見つかったユーザーを持つオブジェクトを返します.操作
終点
ステータスコード
GET
/api/users/{id}
200(OK)ペイロード:なし
レスポンス
{
"id": 1,
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"createdAt": "2021-09-22T16:21:47.760Z",
"updatedAt": "2021-09-22T16:21:47.851Z"
}
➡️ 更新
“更新”機能は、既存のユーザーを変更するときに使用されます.我々は、サーバーに更新する値だけを送信することをお勧めします.エンドポイントのパスは「read by id」と似ていますが、
PUT
メソッド.レスポンスはユーザの更新されたバージョンを含むべきです200 - OK
ステータスコード.操作
終点
ステータスコード
PUT
/api/users/{id}
200(OK)ペイロード
{
"firstName": "Nikos"
}
レスポンス
{
"id": 1,
"firstName": "Nikos", // <-- Changed
"lastName": "Doe",
"email": "[email protected]",
"createdAt": "2021-09-22T16:21:47.760Z",
"updatedAt": "2021-09-23T12:13:07.651Z" // <-- Changed from server
}
➡️ 削除
最後に、しかし、少なくとも、我々はIDによって既存のユーザーを削除するのに用いられる「削除」機能を持っています
DELETE
メソッド.もう一つの重要な点は、ペイロードと応答がどんなデータも転送しないということです.操作
終点
ステータスコード
DELETE
/api/users/{id}
204年(内容)ペイロード:なし
レスポンス:
次は何ですか.
参考文献
Reference
この問題について(角度での一般的なCRUDサービス:パート2‐CRUDとは?), 我々は、より多くの情報をここで見つけました https://dev.to/nikosanif/generic-crud-service-in-angular-part-2-what-is-crud-30ekテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol