0

依存関係を持つ 2 つの異なるリソース間の関係を設計しようとしています。シナリオは次のとおりです。

2 つのリソース。最初のリソースは「アカウント」と呼ばれ、2 番目のリソースは「個人」と呼ばれます。

私の API では、「人」リソースは、名前、年齢、性別、住所、電話などを含む、現実世界の人を表したものです。アカウントは、ログインのように人を認証する責任を負うリソースです。

したがって、「人」リソースの表現は次のようになります。

{
    "id": "7828292",
    "name": "Joseph Climber",
    "email": "yourmail@email.com",
    "gender": "M",
    "telephones": {
        "main": {
            "number": "898987777"
        },
        "secondary": {
            "number": "909099090"
        },
        "business": {
            "number": "937363902"
        }
    },
    "address": {
         "rel": "address",
         "href": "person/{ID}/address"
     }
} 

「アカウント」リソースの表現は次のようになります。

{
    "id": "login@email.com",
    "tokenAccess": "5E69FAE25F4B4F3E8CC5DE09A8163520",
    "link": {
         "rel": "person",
         "href": "person/{id}"
     }
}

私の問題は、新しい人 (投稿者) を作成するときに、新しい人を認証する方法がありません。この場合、これを行うには新しいアカウントを作成する必要があるため、 API コンシューマー。API はこの種の関係を自然に表現しないためです (優れた API 設計の基本概念)。

アカウントと個人リソースの間のこの依存関係を表す最良の方法は何ですか?

4

1 に答える 1

0

おそらく、誰かがアクセス トークンなしでしようとすると、次のような本文のステータス コードが返されPOSTます。/person401 Unauthorized

{
    "@type": "error",
    "description": "You must be authenticated to POST to person. If you do not have an account, then POST to /account to get an access token."
}

これは、API を使用する開発者にとって十分に直感的であると思います。

于 2013-07-02T22:15:36.907 に答える