REST と ServiceStack を学習し、この例のスキーマを構築する方法について提案を求めています。
これらのフィールドを持つUser
オブジェクトがあります:
public class User
{
public string ID {get;set;
public string Name {get;set;}
public List<int> OrderID {get;set;} // inner collection
// all other fields
}
私はService
クラスを持っています:
public class UserService : Service
{
public List<User> Get(User UserRequest)
{
List<User> lstUsers = // Somehow polulate a collection of Users
return lstUsers;
}
// Other functions
}
および AppHost ファイル (今のところ自己ホスト)
public UserHost : AppHostHttpListenerBase
{
public override void Configure(Funq.Container container)
{
Routes
.Add<User>("/UserInfo")
.Add<User>("/User/{ID}");
}
}
クライアント (ブラウザ) は空の「ユーザー」リクエストを送信し、オブジェクトのコレクションを受け取りUser
ますが、追加する必要があるのは特定のUser
リクエストを取得することです。たとえば、特定のUser
ID を持つすべての注文を受信 (および変更) したいとします。
たとえばUser
、ID = 2 のコレクションには 10 がありOrderID
ます。したがって、/MyHost/2/Orders のような URI を作成すると、Order
オブジェクトのコレクションが返されます。
私はすでに別の DTO オブジェクトを追加して、次のOrder
ようなルートにバインドしようとしました。
Route.Add<Order>("/User/{ID}/Oders")
しかし、それは機能しません。画面 (少なくともブラウザー) は常に空白のままで、SS から応答がないようです。
それはRESFullのやり方ですか?ServiceStack にどのように実装できますか? それを行う方法を少しコード例(回路図でも)提供できますか?