資源 123
には現在の構成状態とデフォルトの構成状態があり、これらの構成状態は両方ともJSONで表すことができます。
GET
リクエストhttp://example.com/123/config
は現在の構成状態を返し、GET
リクエストはhttp://example.com/123/config?reset=true
は、デフォルトの構成状態を返します。
APIはブール値をどのように解釈すべきですか?例えば:
http://example.com/123/config?reset=true
http://example.com/123/config?reset=blablabla
http://example.com/123/config?reset=false
http://example.com/123/config?reset=1
http://example.com/123/config?reset=0
http://example.com/123/config?reset=
http://example.com/123/config?reset
どちらにせよ、それは完全に建築家/デザイナーとしてのあなた次第です。 true/false
は最も構文的に正しいバージョンです。1つが機能することを確認し、必要に応じて他のオプションを砂糖として追加してください。
true
およびfalse
リテラルは、ブール値を表すのに十分です。これらは非常に説明的であり、APIがJSONをサポートしている場合、true
とfalse
は明らかに明白な選択肢です。
ただし、一部の状況では、ブール値を展開できないため、ブール値を使用したくない場合があります。代わりにenumerationsを検討することをお勧めします。
これは不十分な比較かもしれませんが、このアプローチの主な考え方を理解するのに役立つ可能性があります。 overflow
や visibility
などのCSSプロパティを確認してください。これらは、true
またはfalse
だけではなく、拡張可能な値を許可します。したがって、プロパティ名を変更せずに新しい値を簡単に追加できます。
したがって、質問で説明されている状況では、リソースのデフォルトの状態を取得するために、status
やdefault
などの値を持つ可能性があるcurrent
などのクエリパラメータをサポートします。
以下は、リソースのdefault状態を返します。
GET /config?status=default HTTP/1.1
Host: example.com
Accept: application/json
そして、以下はリソースのcurrent状態を返します:
GET /config?status=current HTTP/1.1
Host: example.com
Accept: application/json
クエリパラメータが指定されていない場合、クライアントがリソースのcurrent状態を必要としている可能性があります。
リソースの状態をdefault状態に戻す必要がある場合は、PUT
を使用して、リソースの新しい表現をリクエストペイロードで送信することを検討してください。何かのようなもの:
PUT /config/status HTTP/1.1
Host: example.com
Content-Type: application/json
{
"value": "default"
}