Лучше указать относительный адрес в конечной точке или в UriTemplate? - PullRequest
1 голос
/ 01 октября 2010

Лучше ли указывать относительный адрес в конечной точке, например

<endpoint address="json" ... />

или в UriTemplates:

[WebGet(UriTemplate="json/....")]

Какая практика лучше здесь? Это имеет значение? Я знаю, что если я решу изменить json на js позже, мне придется изменить его на всех UriTemplates, но только один раз в конечной точке, но что, если у меня несколько конечных точек. Я не могу использовать один и тот же адрес.

Ответы [ 2 ]

2 голосов
/ 02 октября 2010

Это разные вещи. Давайте посмотрим на каждый из них.

' EndpointAddress предоставляет уникальный сетевой адрес , который клиент использует для связи с конечной точкой службы'. Адрес конечной точки принадлежит конечной точке службы, которая также содержит привязку, контракт и поведение для конечной точки. Адрес конечной точки для службы может быть указан либо обязательно с использованием кода, либо декларативно через конфигурацию. Определение конечных точек в коде обычно нецелесообразно, поскольку привязки и адреса для развернутой службы обычно отличаются от тех, которые используются во время разработки службы . Более практично определять конечные точки службы, используя конфигурацию. В случаях, когда вам нужно несколько конечных точек, определенных в вашей конфигурации - вы можете вручную создать экземпляр Client, используя атрибут имени конечной точки вместо адреса конечной точки.

' WebGetAttribute указывает, что операция службы логически является операцией поиска и что ее можно вызывать с помощью модели программирования REST . Атрибут WebGetAttribute применяется к служебной операции в дополнение к OperationContractAttribute и связывает операцию с UriTemplate , а также с HTTP-протоколом Get verb.


Вот отличный пост о конечных точках REST / SOAP для службы WCF , где вы можете увидеть, как настроить конечные точки для обеих технологий и как использовать WebGetAttribute.

0 голосов
/ 02 октября 2010

Я думаю, что это сводится к вопросу о гранулярности. Конечная точка определяет весь контракт, который вы выставляете, а шаблон URI используется для поиска / манипулирования конкретным ресурсом. Если вы пытаетесь изменить выходной формат для потребителя, сантехника WCF сделает это за вас (добавив формат в uri, не сможет вызвать конкретную строку).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...