私は.netサービスでOpenRastaフレームワークを使用しており、ハンドラーには以下の2つのメソッドがあります
public OperationResult Get(int Number)
{
// Do some operation and get an entity
return new OperationResult.OK(Single-MyResource);
}
public OperationResult GetQ()
{
// Do some operation and get an entity
return new OperationResult.OK(List-Of-MyResource);
}
私の設定は以下のようになります
ResourceSpace.Has.ResourcesOfType<MyResource>()
.AtUri("/MyResource/{Id}")
.And.AtUri("/MyResource")
.HandledBy<MyResourceHandler>()
.AsJsonDataContract()
.And.AsXmlDataContract()
ResourceSpace.Has.ResourcesOfType<IList<MyResource>>()
.AtUri("/MyResources")
.HandledBy<MyResourceHandler>()
.AsJsonDataContract()
.And.AsXmlDataContract();
HttpMethod: GET AcceptHeader: "application/json" URI: http://testDomain.com/MyResource/
上記のリクエストは、以下のリクエストで取得したものと同じ MyResource のリストを提供します
HttpMethod: GET AcceptHeader: "application/json" URI: http://testDomain.com/MyResources/
構成をに変更した後
ResourceSpace.Has.ResourcesOfType<MyResource>()
.AtUri("/MyResource/{Id}")
.And.AtUri("/MyResource").Named("MyResource")
.HandledBy<MyResourceHandler>()
.AsJsonDataContract()
.And.AsXmlDataContract()
そしてハンドラに適切な変更を加えます
[HttpOperation(HttpMethod.GET, ForUriName = "MyResource")]
OpenRasta は 415 http ステータス コードを返します。
上記は再び一貫性がありません。
上記と同様の構成の他のリソースの場合、OpenRasta は 403 http ステータス コードをスローします