我的WCF4 Rest Service及Entity Framework with POCO之旅(二)——选择请求/返回格式
REST被推崇,一个很重要的原因就是它的数据格式可以是XML,也可以是JSON,这使得Javascript可以轻松调用RESTful服务。WCF REST内置了JSON序列化器,可以轻易实现格式的转换,甚至可以根据请求动态选择返回的格式。
先看看如何手动指定返回格式。WebGetAttribute和WebInvokeAttribute有RequesetFormat和ReponseFormat两个属性,可以指定请求/返回格式为XML或者JSON:
但相比之下,动态选择格式还是更灵活也吸引人一些。打开之前创建的项目,在自动生成的web.config中,有这么一条配置:
1 | < standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/> |
设定标准Endpoint为打开服务帮助,并且打开自动格式选择。
打开服务帮助就是当访问/microblogs/help时会看到如下的帮助界面:
列举了服务的接口,每个接口还说明了其详细用法、示例,以及请求/返回数据的scheme。
而自动格式选择,分为两部分:自动根据请求,选择请求内容的格式和回复内容的格式。这两者分别是通过HTTP请求头中的Content-Type和Accept这两项指定的。
在Fiddler2中把Content-Type改成application/json, 表示请求的内容格式是JSON,再次发布一条微博:
请求成功,可以看到请求内容是JSON格式,服务器成功处理了,但返回还是XML格式:
现在再修改Accept头为application/json, 表示只接受JSON的返回格式,然后获取所有的微博:
可以看到,返回内容已经是JSON格式了。等等,那个时间的格式好像有点怪?另外,大写的field名称似乎也不合习惯。别急,我们以后会解决这些问题。
小结
本文介绍了
- 如何手动指定请求/返回的数据格式
- 如何使用WCF的自动格式选择
和上一篇一样,有图有真相。不过也很花时间,我怀疑是不是写得太详细了?以后如非必要,估计不这么写了,毕竟我的目的不是出一套教材,而是希望能整理一些其他地方找不到的东西,否则舍本逐末,得不偿失。
我的WCF4 REST Service及Entity Framework with POCO之旅系列
- 我的WCF4 REST Service及Entity Framework with POCO之旅(一)——创建一个基本的RESTful Service
- 我的WCF4 REST Service及Entity Framework with POCO之旅(二)——选择请求/返回格式
- 我的WCF4 REST Service及Entity Framework with POCO之旅(三)——用Entity Framework和POCO Template实现数据模型及存储
- 我的WCF4 REST Service及Entity Framework with POCO之旅(四)——定制Entity
- 我的WCF4 REST Service及Entity Framework with POCO之旅(五)——身份验证
posted on 2011-03-29 09:07 Gildor Wang 阅读(2809) 评论(18) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述