角度での一般的なCRUDサービス:パート2‐CRUDとは?


カバー写真Tobias Fischer on Unsplash .
この記事は、一般的なCRUDサービスとモデルを角度で作成する方法に関するシリーズの一部です.

  • 👉 パート2 -何が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/users201(作成)

    ペイロード
    {
      "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/users200(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年(内容)

    ペイロード:なし

    レスポンス:

    次は何ですか.

  • 参考文献
  • What is CRUD?
  • Create, read, update and delete
  • ニックス・アニフ✍️