私は、ソフトウェアのライセンスを取得するために、しばらく前にWebアプリを開発しました。これには、顧客、アカウント、ユーザー、およびライセンスがあります。ライセンスはユーザーに割り当てられ、シリアル番号でアクティブ化されます。ライセンスは、発注書の処理の出力として作成されます。つまり、新しいライセンスをPOSTする直接的な方法はありません。
私は現在「RESTfulWebサービス」を読んでいて、それをどのようにRESTfulにするかを考えています(HATEOASも)。
ほとんどのURLは明確ですが、ライセンスにはいくつかの興味深いアクションが必要です。ライセンスの基本URLはです/licence/{licenceID}
。
- 使用可能なライセンスをユーザーに割り当てます(サポートスタッフが行います)
- ユーザーからライセンスを解放します(使用可能なライセンスのプールに戻します)
- シリアル番号を使用してライセンスをアクティブ化し、代わりにキーを生成します
- ライセンスを再アクティブ化する
- ライセンスを新しい有効期限に更新します
- ライセンスを無効にします。一方向のみで、元に戻すことはできません。ライセンスはまだ存在します
現在、RESTでは標準的なメソッドしか使用できず、「割り当て」というアクションをURLに埋め込んではいけません。私が考えているのは、影響を与えたいライセンスの部分を選択することです。これは与える: -
- リスト:
GET /licences/
- 得る:
GET /licences/{licenceID}
- 割当:
POST /licences/{licenceID}/assignee/{userID}
- リリース:
DELETE /licences/{licenceID}/assignee
- 活性化:
POST /licences/{licenceID}/serialNumber/{serialNumber}
- 非アクティブ化:
DELETE /licences/{licenceID}/serialNumber
- 更新:
POST /licences/{licenceID}/expires
- 無効にする:
DELETE /licences/{licenceID}/enabled
私の質問は:-
- このURLスキームは、それを行うための「正しい」または賢明な実践的な方法ですか?
- または、「ライセンスの割り当て」と「ライセンスのアクティブ化」のコレクションが必要です(例
/assignments/{licenceId}/{userId}
:)
- または、「ライセンスの割り当て」と「ライセンスのアクティブ化」のコレクションが必要です(例
- 私は何か基本的なものが欠けていますか(本を読み終えたときに明らかになるかもしれません)
- パラメーター(userIdおよびserialNumber)は、パスパラメーターまたはクエリパラメーターとして使用する必要がありますか?
- {userId}はシステム上のユーザーを参照しているため、パスパラメーターになる可能性があります
- {serialNumber}は、クライアント(Java Swing)で独自の情報(シリアル番号の中央DBはありません)から生成されます。
どうもありがとう!