私はRESTとServiceStackを学び始めました。ちょっと理解できないものがRoute
です。たとえば、GitHubチュートリアルの基本的なHelloWorldの例をとり、User
オブジェクトのコレクションを返すように書き直す場合などです。ここに例があります:ServiceStackでのRESTルーティング
public User
{
public string Name;
public string Address;
public int Age;
}
// Hello - request object without [Route] attribute
public class Hello
{
public string Name { get; set; }
}
public class HelloResponse
{
public IEnumerable<User> Result {get;set;}
}
public class HelloService : Service
{
public object Any(Hello request)
{
return new HelloResponse { // Collection of User object };
}
}
ここではすべて正常に動作し、問題はありません。 Age
パラメータによって選択された単一User
を返します。このURLへ/Hello/{name}/Address
実はこのコール(GET):しかし、今、私は次のように別のルーティングのURLを追加します。どのように私はこれを行うことができますか? Service
を追加する必要がありますか?そして、URLは次のようになります場合:
/Hello/{name}/{age}/Address
私が何かを理解していないようだ.....
私は 'Route.Add'関数を誤解しているようです。私が間違っている場合は私を修正してください! Route.Add( "/ /{DTO-field-name}/{DTO-field-name}"のスキーマは、 ")。クライアント側では、DTO型と実際のHTML動詞(POST/GET)のようなパラメータを持つ関数でサーバー上でdeserializeされ、urlとして設定されたフィールドを持つ完全なDTOオブジェクトにシリアル化されましたか?それは一般的に正しいですか? –
Jasper
'Route.Add()'と '[Route]'属性はまったく同じです。つまりそれらは両方ともリクエストDTOに適用されますが、ルート自体に一致させるテキストリテラルを指定できます。 Routeの変数はRequest DTOフィールドにマップする必要があります。 –
mythz