2010-08-07 4 views
1

Интересно, может ли кто-нибудь подтвердить соглашение об именах, которое я использую, правильно, я только начал и действительно не хочу попасть в плохую привычкуСоглашения о присвоении имен WCF для методов и URI?

Вот что у меня есть ... (см. Комментарии)

В основном у меня есть метод под названием GetTasks, но ури - это задачи - я полагаю, это путь?

Также у меня есть метод, называемый GetUser где Ури (во множественном числе) Пользователи/{ID}

Любое подтверждение, прежде чем я по-прежнему было бы здорово .. спасибо ..

вот методы, которые я есть в настоящее время ..

[WebGet(UriTemplate = "Tasks")] 
    public List<SampleItem> GetTasks() //RETURNS a COLLECTION 
    { 
     // TODO: Replace the current implementation to return a collection of SampleItem instances 
     return new List<SampleItem>() { new SampleItem() { Id = 1, StringValue = "Hello" } }; 
    } 


    [WebGet(UriTemplate = "Users/{id}")] 
    public SampleItem GetUser(string id) // RETURNS A USER 
    { 
     // TODO: Return the instance of SampleItem with the given id 
     //throw new NotImplementedException(); 
     return new SampleItem() {Id = 1, StringValue = "Hello"}; 
    } 

    [WebInvoke(UriTemplate = "Users/{id}", Method = "PUT")] 
    public SampleItem UpdateUser(string id, SampleItem instance) // UPDATES A USER 
    { 
     // TODO: Update the given instance of SampleItem in the collection 
     throw new NotImplementedException(); 
    } 

    [WebInvoke(UriTemplate = "Users/{id}", Method = "DELETE")] 
    public void DeleteUser(string id) // DELETES A USER 
    { 
     // TODO: Remove the instance of SampleItem with the given id from the collection 
     throw new NotImplementedException(); 
    } 
+0

одна вещь, о которой я беспокоюсь, это «GetUser», где Uri является (множественным) пользователем/{id} или должен быть (единственным) пользователем/{id} –

ответ

1

Ну, иногда имитация - лучшая форма лести. Если вы посмотрите на StackOverflow, они используют users/{userid}/... для своего соглашения URI. Как правило, использование множественных чисел для сущностей, а затем предоставление следующего сегмента (если есть) описания действия кажется довольно стандартным. Обычно это направление, в котором я участвую в определении услуг RESTful:

GET  /Users   -- return all users 
GET  /Users/{id} -- return a single user 
POST  /Users   -- insert a user 
PUT  /Users/{id} -- update a user 
DELETE /Users/{id} -- delete a user 

Это тоже хорошо подходит для служб передачи данных WCF. Хотя вы определяете имена сущностей, шаблон обычно одинаковый. Приятно то, что вы можете также определить запросы на URL для вашего GETs, и снова по образцу:

GET  /Users?$top=10&filter=name eq 'Steve' -- return top 10 users who's name is steve 

Так что я думаю, что вы идете в правильном направлении. Вы рассматривали услуги передачи данных WCF? Он создает для вас эти операции с сущностями - но это может быть неправильное решение в зависимости от ваших требований.

Удачи. Надеюсь это поможет.

Смежные вопросы