0

/ Person/1と/Person/Blairで人を取得できるようにしたい場合どうすればよいですか。

構成クラス:

public class RastaConfiguration : IConfigurationSource
{
    public void Configure()
    {
        using (OpenRastaConfiguration.Manual)
        {

            ResourceSpace.Has.ResourcesOfType<List<Subject>>()
                .AtUri("/Subject")
                .HandledBy<SubjectHandler>()
                .TranscodedBy<JsonDataContractCodec>();

            ResourceSpace.Has.ResourcesOfType<List<Person>>()
                .AtUri("/Person").And.AtUri("/Person/{name}")
                .HandledBy<PersonHandler>()
                .TranscodedBy<JsonDataContractCodec>();

            ResourceSpace.Has.ResourcesOfType<Person>()
                .AtUri("/Person/{id}")
                .HandledBy<PersonHandler>()
                .TranscodedBy<JsonDataContractCodec>();
        }
    }
}

とハンドラー

 public class PersonHandler
{

    private static readonly List<Person> People = new List<Person>
                                             {
                                                 new Person {Id = 1, Name = "Blair Davidson", Subjects = new List<Subject>
                                                                                                  {
                                                                                                      new Subject{ Name = "Maths"}
                                                                                                  }},
                                                 new Person {Id = 2, Name = "Esther Hew", Subjects = new List<Subject>
                                                                                                  {
                                                                                                      new Subject{ Name = "Chinese"}
                                                                                                  }}
                                             };

    public IEnumerable<Person> Get()
    {
        return People;
    }

    public IEnumerable<Person> GetByName(string name)
    {
        return People.Where(x => x.Name.Contains(name)).ToList();
    }

    public Person GetById(int id)
    {
        return People.SingleOrDefault(x => x.Id == id);
    }

    public OperationResult Post(Person person)
    {
        People.Add(person);

        return new OperationResult.Created
                   {
                       ResponseResource = person
                   };
    }


}

asp.net mvcのような制約を使用する方法はありますか?

どんな助けでもいただければ幸いです。

4

1 に答える 1

1

URI に名前を付け (config の Named メソッドを使用)、その URI を HttpOperation 属性でバインドするメソッドに同じ名前を付け、ForUriName プロパティをその値に設定します。登録。

于 2011-08-15T10:54:22.887 に答える