WCF服务设计时,有哪些最佳实践可以确保其成为高效、可维护的休息服务?

2026-03-30 12:021阅读0评论SEO资源
  • 内容介绍
  • 相关推荐

本文共计477个文字,预计阅读时间需要2分钟。

WCF服务设计时,有哪些最佳实践可以确保其成为高效、可维护的休息服务?

刚开始我的第一个WCF休闲项目,希望得到一些关于使用REST最佳实践的指导。已经看过很多教程,似乎有众多方法可以完成某些事情。例如,如果做一个POST请求,已经看过一些设置。

刚刚开始我的第一个WCF休息项目,并希望获得有关使用REST的最佳实践的一些帮助.

我已经看过很多教程,并且似乎有很多方法可以做某些事情……例如,如果做一个POST,我已经看过一些设置HttpStatusCodes(OK / Errors等)的教程,以及其他教程.只是返回包含操作结果的字符串.

在一天结束时,有4个操作,当然必须有一个指南,说明如果你正在做GET,这样做,等等和POST,这样做…

任何帮助,将不胜感激.

JD

UPDDATE

使用ASP.NET Web API.

好的,我离开了评论REST最佳实践:不要使用WCF REST.只是像瘟疫一样避免它,我觉得我必须解释它.

WCF的一个根本缺陷是它只关注Payload.例如,Foo和Bar是这里的有效载荷.

[OperationContract] public Foo Do(Bar bar) { ... }

这是WCF的租户之一,因此无论传输是什么,我们都会将有效负载交给您.

但它忽略的是调用的上下文/包络,在许多情况下是特定的传输 – 所以很多上下文都会丢失.实际上,HTTP的功能在于它的上下文而不是有效载荷,而在早期版本的WCF中,没有办法在netTcpBinding中获取客户端的IP地址,WCF团队坚持认为他们无法提供它.我现在找不到页面,但记得阅读评论,而MS人员只是说不支持.

使用WCF REST,您在以下方面明确表达自己(并且他们不得不在以后使用它们)时失去了HTTP的灵活性:

> HTTP状态代码
> HTTP媒体类型
> ETag,……

新的Web API,Glenn Block正在通过将有效负载封装在上下文中来解决此问题:

public HttpResponse<Foo> Do(HttpRequest<Bar> bar) // PSEUDOCODE { ... }

但是对于我的测试,这并不完美,我个人更喜欢使用Nancy等框架甚至普通的ASP NET MVC来公开Web API.

WCF服务设计时,有哪些最佳实践可以确保其成为高效、可维护的休息服务?

本文共计477个文字,预计阅读时间需要2分钟。

WCF服务设计时,有哪些最佳实践可以确保其成为高效、可维护的休息服务?

刚开始我的第一个WCF休闲项目,希望得到一些关于使用REST最佳实践的指导。已经看过很多教程,似乎有众多方法可以完成某些事情。例如,如果做一个POST请求,已经看过一些设置。

刚刚开始我的第一个WCF休息项目,并希望获得有关使用REST的最佳实践的一些帮助.

我已经看过很多教程,并且似乎有很多方法可以做某些事情……例如,如果做一个POST,我已经看过一些设置HttpStatusCodes(OK / Errors等)的教程,以及其他教程.只是返回包含操作结果的字符串.

在一天结束时,有4个操作,当然必须有一个指南,说明如果你正在做GET,这样做,等等和POST,这样做…

任何帮助,将不胜感激.

JD

UPDDATE

使用ASP.NET Web API.

好的,我离开了评论REST最佳实践:不要使用WCF REST.只是像瘟疫一样避免它,我觉得我必须解释它.

WCF的一个根本缺陷是它只关注Payload.例如,Foo和Bar是这里的有效载荷.

[OperationContract] public Foo Do(Bar bar) { ... }

这是WCF的租户之一,因此无论传输是什么,我们都会将有效负载交给您.

但它忽略的是调用的上下文/包络,在许多情况下是特定的传输 – 所以很多上下文都会丢失.实际上,HTTP的功能在于它的上下文而不是有效载荷,而在早期版本的WCF中,没有办法在netTcpBinding中获取客户端的IP地址,WCF团队坚持认为他们无法提供它.我现在找不到页面,但记得阅读评论,而MS人员只是说不支持.

使用WCF REST,您在以下方面明确表达自己(并且他们不得不在以后使用它们)时失去了HTTP的灵活性:

> HTTP状态代码
> HTTP媒体类型
> ETag,……

新的Web API,Glenn Block正在通过将有效负载封装在上下文中来解决此问题:

public HttpResponse<Foo> Do(HttpRequest<Bar> bar) // PSEUDOCODE { ... }

但是对于我的测试,这并不完美,我个人更喜欢使用Nancy等框架甚至普通的ASP NET MVC来公开Web API.

WCF服务设计时,有哪些最佳实践可以确保其成为高效、可维护的休息服务?