本文用来保存自己学习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.跨域请求

https://docs.microsoft.com/en-us/aspnet/web-api/overview/security/enabling-cross-origin-requests-in-web-api

最新文章

  1. win7里边使用telnet命令为什么提示telnet不是内部或外部命令,也不是可运行的程序或批处理文件
  2. JAVA自动化测试中多数据源的切换
  3. SQL中索引的原理
  4. new trip
  5. 初步swift语言学习笔记9(OC与Swift杂)
  6. C中的宏
  7. windows 下mysql的安装于使用(启动、关闭)
  8. 第m个全排列
  9. Oracle的SOME,ANY和ALL操作
  10. Tomcat 部署项目的三种方法
  11. C++第一篇--类的引入
  12. k8s 重要概念 - 每天5分钟玩转 Docker 容器技术(117)
  13. Virtual DOM 系列一:认识虚拟DOM
  14. 框架和内嵌框架---&gt;frameset 和 iframe 的文档对象
  15. Postgresql日志收集
  16. Python print list列表里面的中文出错
  17. 订单状态 Mark
  18. 《剑指offer》第三十二题(分行从上到下打印二叉树)
  19. 机器学习算法中GBDT和XGBOOST的区别有哪些
  20. mq和redis安装

热门文章

  1. 【前端】【javascript】es6中的遍历器接口Iterator
  2. MFC工程名称与所包含文件名称的关系(工程名可以更改,输出的.dll.exe.lib都以最后工程名命名为准)
  3. codeforces 707C C. Pythagorean Triples(数学)
  4. arguments对象的实例使用
  5. bzoj 3998 弦论 —— 后缀自动机
  6. 转载:Android应用的自动更新模块
  7. 全面解析JS字符串和正则表达式中的match、replace、exec等函数
  8. 0008_Python变量
  9. IE和W3c盒模型
  10. Servlet编程实例