webapi

C# WebAPI中使用Swagger

匿名 (未验证) 提交于 2019-12-02 22:06:11
前端和后端的唯一联系,变成了API接口;API文档变成了前后端开发人员联系的纽带,变得越来越重要, swagger 就是一款让你更好的书写API文档的框架。 没有API文档工具之前,大家都是手写API文档的,在什么地方书写的都有,有在 confluence 上写的,有在对应的项目目录下 readme.md 上写的,每个公司都有每个公司的玩法,无所谓好坏。 书写API文档的工具有很多,但是能称之为“框架”的,估计也只有 swagger 在此先介绍一款其他的API文档工具,叫 rap RAP RAP 是由阿里开发的,整个阿里都在用,还不错。github地址为: https://github.com/thx/RAP 当然咯, rap https://github.com/thx/RAP/wiki/deploy_manual_cn swagger rap 先看看swagger的生态使用图: 其中,红颜色的是 swaggger 官网方推荐的。 下面再细看看swagger的生态的具体内容: swagger-ui 这玩意儿从名字就能看出来,用来显示API文档的。和 rap 不同的是,它不可以编辑。 swagger-editor 左边编辑,右边立马就显示出编辑内容来。 编辑swagger说明文件使用的是 yaml 语法具体的内容可以去官网查看。 目前最流行的做法

WebAPI学习笔记(3)Asp.net调用WebAPI Post方法传递参数

喜欢而已 提交于 2019-12-02 19:08:37
1、WebAPI方法: [HttpPost] public HttpResponseMessage ImportIssue(dynamic obj) { MethodReturnModel<string> returnModel = new MethodReturnModel<string>(); IssueModel issueModel = new IssueModel(); try { string IssueJsonStr = obj.IssueJson.ToString(); issueModel = ConvertJson.JsonToObject<IssueModel>(IssueJsonStr); if(issueModel == null || string.IsNullOrWhiteSpace(issueModel.IssueKey)) { returnModel.Result = false; returnModel.Message = "The json string of issue is not correct"; } else { IssueBLL issueBLL = new IssueBLL(AdminUserToken); string ErrorMessage = ""; if (issueBLL.CreateGPISIssue

c# winform 使用webapi

落花浮王杯 提交于 2019-12-02 18:10:21
public static string HttpPostNoFile(string url, Dictionary<string,string> para) { Encoding encoding = Encoding.UTF8; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);//webrequest请求api地址 request.Accept = "text/html,application/xhtml+xml,*/*"; request.ContentType = "application/x-www-form-urlencoded; charset=UTF-8"; request.Method = "POST";//get或者post StringBuilder buffer = new StringBuilder();//这是要提交的数据 int i = 0; //通过泛型集合转成要提交的参数和数据 foreach (string key in para.Keys) { if (i > 0) { buffer.AppendFormat("&{0}={1}", key, para[key]); } else { buffer.AppendFormat("{0}={1}", key, para

WebApi学习一初步认识与创建项目

柔情痞子 提交于 2019-12-02 08:52:04
WebAPI 一、WebAPI定义 二、WebAPI创建 三、WebAPI路由控制 一、WebAPI定义 给前端提供数据的框架 Restful格式的数据提供方式 Post 提交数据(增) Get 得到数据(查) Put 修改数据(改) Delete 删除数据(删) 常见的为前两个,这四个就代表了增删改查. 但有些企业可能仅用Post和Get两种方式,Get用于查询,将所有的增改删都使用Post方式处理。 二、WebAPI创建 首先打开VS,我这里用的VS版本为Visual Studio 2017。 创建WebAPI 选择Web API 点击确定 创建完成后,可以看到项目自动生成了以MVC结构为基础的项目文件。 一般WebAPI只有Model和Controller,VS在这里默认加上了一个提示页面View。 然后直接按F5运行,会得到一个默认页面,点击API。 出现默认的四种请求方式,Get Post Put Delete 这个页面对应地方在项目中Controllers文件夹下的两个控制器上。 默认的两个控制器因为其父类不同,作用也不同。 HomeController 继承 于System.Web.Mvc.Controller System.Web.Mvc.Controller 为 MVC控制器 。 public class HomeController : Controller /

WebAPI(2)

点点圈 提交于 2019-12-02 07:08:52
更新WebAPI(2) 上次讲了WebApi的简单运用并加上了简单的路由这次我我们重新定义一下,更加符合工作环境 ****记住修改之后的路由一定要放在默认路由的前面 //修改路由 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{action}/{id}", defaults: new { id = RouteParameter.Optional } ); //默认路由 config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); ②WebAPi的从本质上来讲他就是一个HTTP所以他能过接收和传递任何情况下的内容其实相当访问的一个网页 2.1 从前端的方法调用 来源: https://www.cnblogs.com/YZM97/p/11735883.html

.netcore - gRPC vs WebApi 耗时比较

风格不统一 提交于 2019-12-02 04:46:47
测试环境 gRPC & WebApi 服务运行环境 项目 值 CPU 1 内存 2GB 操作系统 ubuntu 虚拟机 软件 docker 运行时 .NET Core 3.0 测试场景 使用不同gRPC和WebApi实现一个UserService,提供SayHi的接口,接收一个字符串参数,返回对这个字符串的简单拼接后的结果,进行单连接/多连接循环调用、并行调用,记录最小耗时、最大耗时、平均耗时。 我非常认同内存、CPU占用很重要,但水平有限,这里不做测试了 除了时间,内存占用实际也是非常非常重要、但容易被人忽略的性能指标。大家都以为“内存不值钱”,但—— 一旦访问量大,内存就会 瞬间 上涨,导致频繁 GC ,导致性能下降; 内存高也会导致服务器分页,这时性能就会急剧下降; 吞吐量下降会导致队列排满,此时服务器就会报503等错误,客户就发现服务器“宕机了”。 (提示:除非你的客户 真 的愿意 多 花钱 再 升级一下服务器,否则不要提“内存不值钱”。) 摘抄自.net骚操作 : https://www.cnblogs.com/sdflysha/p/20190824-dotnet-excel-compare.html 起初设计的是采用微软官方推荐的方式实现gRPC服务,但这种方式实测下来比WebApi还慢,因此增加了采用gRPC官方提供的实现方式进行对比。 gRPC官方提供的实现方式 :

Use Razor pages and webapi in the same project @ .net core 3.0

给你一囗甜甜゛ 提交于 2019-12-02 02:12:00
I created a web app (razor pages) in .net core 3.0. Then I added an api controller to it (both from templates, just few clicks). When I run app, razor page works, but api call returns 404.I get the answer on stackoverflow:https://stackoverflow.com/questions/56298701/razor-pages-and-webapi-in-the-same-project;here is the code:public void ConfigureServices(IServiceCollection services) { services.Configure<CookiePolicyOptions>(options => { // This lambda determines whether user consent for non-essential cookies is needed for a given request. options.CheckConsentNeeded = context => true; });

WebApi 接口恶意请求限制

喜你入骨 提交于 2019-12-01 23:54:04
为了防止爬虫以及恶意请求,我们适当的为API增加一个请求限制 WebApiThrottle限流框架 WebApiThrottle支持自定义配置各种限流策略。可以根据不同场景配置多个不同的限制,比如授权某个IP每秒、每分钟、每小时、每天、每周的最大调用次数。 这些限制策略可以配置在所有请求上,也可以单独给每个API接口去配置。                                                                                                         -- 十色鹿 本文不再过多讲解理论,你们可以看看这两位大佬文章,都解释很详细了(链接在底部) API 还是使用上次的 如果没新建,请看 -> https://www.cnblogs.com/whatarey/p/11438243.html 第一步 NuGet WebApiThrottle 第二步 WebApiConfig.cs 配置 1 #region web api 接口请求限制~~1 2 ///// web api 接口请求限制~~ 3 //config.Filters.Add(new ThrottlingHandler() 4 //{ 5 // Policy = new ThrottlePolicy() 6 // { 7 8 // //ip配置区域

WebAPI

柔情痞子 提交于 2019-12-01 22:52:32
WebPAI ReSTful 风格 表现层状态的转化 -接口的风格 资源:万物成资源 统一接口 CRUD 增删改查 跟HTTP Method对应 Create-POST Read-Get Update--Put/Patch Delete--Delete URI:统一资源定位符,资源对应唯一地址 无状态:给予Http协议,(有状态) 无状态的直接一个地址, WebService----http协议 ,soap协议,只能IIs承载 ,入门简单 WCF---集大成者,多种协议,多种数组 整合了RPC RPC 模式 都是调用方法 WebAPI:RESTful,http协议 无状态 标准化操作 适合移动端基本上就是一种HTTP 来源: https://www.cnblogs.com/YZM97/p/11719785.html

WebAPI学习笔记(2)返回值为Json格式

☆樱花仙子☆ 提交于 2019-12-01 21:53:59
1 [HttpPost] 2 public HttpResponseMessage GetAll() 3 { 4 List<IssueModel> issueModelList = new List<IssueModel>(); 5 6 try 7 { 8 IssueBLL issueBLL = new IssueBLL(AdminUserToken); 9 issueModelList = issueBLL.GetAllIssueModelList(); 10 } 11 catch(Exception ex) 12 { 13 14 } 15 16 string content = ConvertJson.List2Json<IssueModel>(issueModelList); 17 18 HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(content, Encoding.GetEncoding("UTF-8"), "application/json") }; 19 return result; 20 } 1 public static string List2Json<T>(IList<T> list) 2 { 3 return Newtonsoft.Json