本文用来保存自己学习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

WebAPI学习及Swagger使用的更多相关文章

  1. 【swagger学习】.net WebApi中使用swagger

    我在WebApi中使用swagger的时候发现会出现很多问题,搜索很多地方都没找到完全解决问题的方法,后面自己解决了,希望对于遇到同样问题朋友有帮助.我将先一步一步的演示项目中解决swagger遇到问 ...

  2. 在webapi中使用swagger

    1 在webapi项目下安装swagger,包名 Swashbuckle.AspNetCore 2 在webapi的startup.cs文件中添加swagger服务 /// <summary&g ...

  3. ASP.NET Core 3.0 WebApi中使用Swagger生成API文档简介

    参考地址,官网:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view ...

  4. ASP.NET WebApi 文档Swagger深度优化

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明博客园蜗牛原文地址,cnblogs.com/tdws   写在前面 请原谅我这个标题党,写到了第100篇随笔,说是深度优化,其实也并没有什么深度 ...

  5. ASP.NET WebApi 文档Swagger中度优化

    本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文地址:www.cnblogs.com/tdws   写在前面 在后台接口开发中,接口文档是必不可少的.在复杂的业务当中和多人对接的情况下,简 ...

  6. .net WebApi中使用swagger

    我在WebApi中使用swagger的时候发现会出现很多问题,搜索很多地方都没找到完全解决问题的方法,后面自己解决了,希望对于遇到同样问题朋友有帮助.我将先一步一步的演示项目中解决swagger遇到问 ...

  7. Asp.Net Core WebApi学习笔记(四)-- Middleware

    Asp.Net Core WebApi学习笔记(四)-- Middleware 本文记录了Asp.Net管道模型和Asp.Net Core的Middleware模型的对比,并在上一篇的基础上增加Mid ...

  8. .net WebApi中使用swagger生成WepApi集成测试工具

    我在WebApi中使用swagger的时候发现会出现很多问题,搜索很多地方都没找到完全解决问题的方法,后面自己解决了,希望对于遇到同样问题朋友有帮助.我将先一步一步的演示项目中解决swagger遇到问 ...

  9. WebApi 文档Swagger

    NET WebApi 文档Swagger中度优化   本文版权归博客园和作者吴双本人共同所有,转载和爬虫请注明原文地址:www.cnblogs.com/tdws   写在前面 在后台接口开发中,接口文 ...

随机推荐

  1. Redis安装以及基本操作命令

    Redis安装 cd redis-2.6.14make PREFIX=/usr/local/redis install 可能会出现的错误提示>>提示1:make[3]: gcc:命令未找到 ...

  2. JS判断2个时间是否在同一周

    function isSameWeek(old, now) { var oneDayTime = 1000 * 60 * 60 * 24; var old_count = parseInt(+old ...

  3. tensorflow训练过程中内存溢出

    罪魁祸首是训练过程中给模型传值时的如下语句:

  4. IDEA使用maven中tomcat插件来启动服务器配置

    一 .在项目pom文件中配置tomcat 先添加如下配置: <!-- 配置Tomcat插件 --> <build> <plugins> <plugin> ...

  5. backbonejs学习

    文章: http://www.cnblogs.com/yexiaochai/archive/2013/07/27/3219402.html http://blog.csdn.net/cony100/a ...

  6. JS之事件监听

    一 如果事件监听类似于如下写法,则最终只会执行最后一个事件监听,其他监听都会被覆盖掉. window.onload=funtion(){console.log(1);}; window.onload= ...

  7. 几个最短路径算法Floyd、Dijkstra、Bellman-Ford、SPFA的比较

        几大最短路径算法比较 转自:http://blog.csdn.net/v_july_v/article/details/6181485 几个最短路径算法的比较: Floyd        求多 ...

  8. HDOJ1495(倒水BFS)

    非常可乐 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  9. 【转】 Pro Android学习笔记(四一):Fragment(6):数据保留

    目录(?)[-] 通过fragment参数实现数据保留 对TitleFragment进行修改 对DetailActivity进行修改 通过savedInstanceState进行数据保留 保留frag ...

  10. Jquery隐藏相同name的div

    $("div:[name=divName]").hide(); divName(自己div的Name)