WebAPI学习及Swagger使用
2024-09-01 19:19:15
本文用来保存自己学习WebAPI和Swagger使用过程中参考的文章,以及对WebAPI的初步了解。
1.RESTful风格
WebAPI只支持Http协议;
1.1.WebAPI与MVC的区别
ValuesController
区别一:存在API控制器都使用的基类:ApiController
区别二:控制器中的方法返回原始对象,不是视图
区别三:MVC和WebAPI传统调度之间的差异。MVC根据名称调度操作,WebAPI默认根据动词调度操作
ApiController上的ExecuteAsync方法是接口IHttpController中的方法。,那么所有WebAPI控制器都是异步设计。
1.2.HttpResponseMessage和HttpRequestMessage
WebAPI默认返回XML格式文件,返回Json解决方案:
public class JsonContentNegotiator : IContentNegotiator { private readonly JsonMediaTypeFormatter _jsonFormatter; public JsonContentNegotiator(JsonMediaTypeFormatter formatter) { _jsonFormatter = formatter; } public ContentNegotiationResult Negotiate(Type type, HttpRequestMessage request, IEnumerable<MediaTypeFormatter> formatters) { var result = new ContentNegotiationResult(_jsonFormatter, new MediaTypeHeaderValue("application/json")); return result; } }
JsonContentNegotiator
WebApiConfig.cs中添加如下代码
public static void Register(HttpConfiguration config) { //返回JSON var jsonFormatter = new JsonMediaTypeFormatter(); config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter)); }
Register
参考:https://blog.csdn.net/xhsunnycsdn/article/details/81128699
2.Swagger使用
下面两篇文章,是自己认为较经典的。第二篇有关于Swagger实现原理的介绍
参考:
https://www.cnblogs.com/lhbshg/p/8711604.html
https://www.cnblogs.com/Leo_wl/p/5728033.html //主要了解Swagger实现原理(ApiExplorer)
3.权限验证
下面博文有关WebAPI的权限认证介绍
https://www.cnblogs.com/huangenai/p/5253709.html
4.跨域请求
最新文章
- win7里边使用telnet命令为什么提示telnet不是内部或外部命令,也不是可运行的程序或批处理文件
- JAVA自动化测试中多数据源的切换
- SQL中索引的原理
- new trip
- 初步swift语言学习笔记9(OC与Swift杂)
- C中的宏
- windows 下mysql的安装于使用(启动、关闭)
- 第m个全排列
- Oracle的SOME,ANY和ALL操作
- Tomcat 部署项目的三种方法
- C++第一篇--类的引入
- k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)
- Virtual DOM 系列一:认识虚拟DOM
- 框架和内嵌框架--->;frameset 和 iframe 的文档对象
- Postgresql日志收集
- Python print list列表里面的中文出错
- 订单状态 Mark
- 《剑指offer》第三十二题(分行从上到下打印二叉树)
- 机器学习算法中GBDT和XGBOOST的区别有哪些
- mq和redis安装
热门文章
- 【前端】【javascript】es6中的遍历器接口Iterator
- MFC工程名称与所包含文件名称的关系(工程名可以更改,输出的.dll.exe.lib都以最后工程名命名为准)
- codeforces 707C C. Pythagorean Triples(数学)
- arguments对象的实例使用
- bzoj 3998 弦论 —— 后缀自动机
- 转载:Android应用的自动更新模块
- 全面解析JS字符串和正则表达式中的match、replace、exec等函数
- 0008_Python变量
- IE和W3c盒模型
- Servlet编程实例