C# 在端点或模板中指定相对地址更好吗?

C# 在端点或模板中指定相对地址更好吗?,c#,wcf,rest,C#,Wcf,Rest,例如,在端点中指定相对地址是否更好 <endpoint address="json" ... /> 这里有什么更好的练习?这有关系吗?我知道如果我以后决定将json更改为js,我将不得不在所有的UriTemplates中更改它,但在端点中只更改一次,但是如果我有多个端点呢。我不能使用相同的地址。我认为这归结为粒度问题。端点定义要公开的整个协定,URI模板用于定位/操作特定资源。如果您试图更改使用者的输出格式,WCF管道将为您处理此问题(通过将格式附加到uri,无法调用特定字符串)。

例如,在端点中指定相对地址是否更好

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

这里有什么更好的练习?这有关系吗?我知道如果我以后决定将json更改为js,我将不得不在所有的UriTemplates中更改它,但在端点中只更改一次,但是如果我有多个端点呢。我不能使用相同的地址。

我认为这归结为粒度问题。端点定义要公开的整个协定,URI模板用于定位/操作特定资源。如果您试图更改使用者的输出格式,WCF管道将为您处理此问题(通过将格式附加到uri,无法调用特定字符串)。

这是不同的事情。让我们逐一看看

提供客户端用于与服务端点通信的唯一网络地址”。端点地址属于服务端点,服务端点还包含端点的绑定、契约和行为。 服务的端点地址可以使用代码强制指定,也可以通过配置声明指定。在代码中定义端点通常不实用,因为部署的服务的绑定和地址通常与开发服务时使用的绑定和地址不同。使用配置定义服务端点更为实际。 在需要在配置中定义多个端点的情况下,您可以使用而不是端点地址手动实例化客户端

表示服务操作在逻辑上是一个检索操作,REST编程模型可以调用它”。 该属性除应用于外,还应用于服务操作,并将该操作与以及HTTP协议Get谓词相关联


这是一篇关于如何为这两种技术配置端点以及如何使用WebGetAttribute的好文章

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