gpt4 book ai didi

c# - WCF Restful 服务是否允许公开与 WebGet 和 WebInvoke 相同的方法?

转载 作者:太空狗 更新时间:2023-10-30 01:36:07 25 4
gpt4 key购买 nike

WCF Restful 服务是否允许像 WebGet 和 WebInvoke 一样公开相同的方法重载?这两种方法都应该可以从同一个 URL 访问。

例如

 [ServiceContract]
public interface IWeChatBOService
{

[WebGet(UriTemplate = "WeChatService/{username}")]
[OperationContract]
string ProcessRequest(string MsgBody);

[WebInvoke(Method = "POST", UriTemplate = "WeChatService/{username}")]
[OperationContract]
string ProcessRequest(string MsgBody);

是否可以使用 WCF Restful Service?

最佳答案

是的,这是可能的,Tequila 的回答非常接近预期:

[ServiceContract]
public interface IWeChatBOService
{

[WebGet(UriTemplate = "WeChatService/{msgBody}")]
[OperationContract]
string ProcessRequest(string msgBody);

[WebInvoke(Method = "POST", UriTemplate = "WeChatService")]
[OperationContract]
string ProcessRequest2(string msgBody);
}

但我不建议设计这样的 api。 enpoint描述中最好描述base uri,UriTemplate应该体现资源标识符:

[ServiceContract]
public interface IWeChatBOService
{

[WebGet(UriTemplate = "messages/{messageId}")]
[OperationContract]
string GetMessage(string messageId);

[WebInvoke(Method = "POST", UriTemplate = "messages")]
[OperationContract]
string InsertMessage(string message);
}

这里有一个很好的建议:

REST Best practices

RESTful API Design

关于c# - WCF Restful 服务是否允许公开与 WebGet 和 WebInvoke 相同的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23153700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com