ABP框架使用 Swagger

在最近的一个项目中用到了 ABP框架 http://aspnetboilerplate.com/ ,第一次接触到 Swagger https://swagger.io/ 以及前后端的完全分离

在ABP官网下载下来的ABP框架结构【基于ASP.NET MVC5.x的】如图:
1337728-20180413110621699-1873413646.png

ABP的EntityFramework 是Code First Mode的,所以在配置好相应的实体后,修改数据库连接字符串,选择执行Migration 后数据库创建的位置

  <connectionStrings><add name="Default" connectionString="Server=.;Database=ABP_show_api_in_the_swagger; Trusted_Connection=True;" providerName="System.Data.SqlClient" /></connectionStrings>

旧的Migration已经没有用了,全部删除掉,

1337728-20180413112025238-1464488977.png

在程序包管理控制台中,做如下操作:
默认项目一定要选择带有后缀EntityFramework的

Add-Migration init
Add-Migration init

Add-migration 要输入两遍

update-database

1337728-20180413113124078-897572978.png

在执行成功后相应的数据库就会创建在相应的地方

在WebApi类库中,找到后缀为WebApiMoudle的类,添加ConfigureSwaggerUi方法

 private void ConfigureSwaggerUi()
{Configuration.Modules.AbpWebApi().HttpConfiguration.EnableSwagger(c =>{c.SingleApiVersion("v1", "show all Api");c.ResolveConflictingActions(apiDescriptions => apiDescriptions.First());}).EnableSwaggerUi();
}

之后在Initialize方法里追加代码

 var cors = new EnableCorsAttribute("*", "*", "*");GlobalConfiguration.Configuration.EnableCors(cors);Configuration.Modules.AbpWeb().AntiForgery.IsEnabled = false;ConfigureSwaggerUi();

会发现缺少命名空间
1337728-20180413115035729-1064650352.png

其中EnableCorsAttribute 位于System.Web.Http.Cors命名空间下,EnableSwagger 位于Swashbuckle.Core包中,用Nuget中引入相应的包
都安装到 WebApi类库中

 Install-Package SwashbuckleInstall-Package Microsoft.AspNet.CorsInstall-Package Microsoft.AspNet.WebApi.Cors

重新引入命名空间,可以看到问题没有了,重新编译运行项目,在网站URI根路径后键入 swagger/ui/index ,访问之,大功告成!
1337728-20180413141021201-1034911287.png
可以看到所有的API【注意只有继承了IApplictionService接口的Interface中定义的方法才会被扫描并显示在这里】的名称、参数、都在这里面了,还可以直接验证好不好用哦~
1337728-20180413141219922-1244715652.png

转载于:https://www.cnblogs.com/Mxy-cnblog/p/8819326.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/427831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql日期可以保存时区_数据库存储时间的时区问题

先说一下mysql中DATETIME和TIMESTAMP的区别TIMESTAMP是标准的unix timestamp&#xff0c;它存储的是1970-1-1到现在经过的秒数&#xff0c;4字节存储。mysql用这个类型还蛮方便的&#xff0c;一个是有很多内置的函数和trigger来处理它&#xff0c;比如CURRENT_TIMESTAMP宏&…

JVM第五部分 高效并发

java 内存模型与线程 硬件内存模型 java内存模型 主内存vs工作内存 所有变量都在主内存&#xff08;虚拟机内存的一部分&#xff09;&#xff0c;每条线程都有自己的工作内存&#xff0c;线程所有用到的变量都必须从主内存拷贝出来&#xff08;不能直接读写主内存变量&#xff…

ubuntu安装php5-mysql_Ubuntu下安装Apache2, php5 mysql

1&#xff1a;首先安装apache&#xff1a;打开终端(ctrlAltt)&#xff0c;输入命令&#xff1a;sudo apt-get install apache2即可安装&#xff0c;安装完后&#xff0c;打开浏览器&#xff0c;在地址栏输入&#xff1a;localhost或者http://127.0.0.1看到It works&#xff0c;…

hadoop元数据mysql中表字段_hive mysql元数据表说明

2019独角兽企业重金招聘Python工程师标准>>>数据库相关的表DBS该表存储Hive中所有数据库的基本信息&#xff0c;字段如下&#xff1a;元数据表字段说明示例数据DB_ID数据库ID2DESC数据库描述测试库DB_LOCATION_URI数据库HDFS路径hdfs://namenode/user/hive/warehouse/…

CentOs7.2编译安装Nginx服务器

1. 安装nginx依赖 首先安装nginx的依赖 yum install gcc gcc-c openssl openssl-devel cyrus-sasl-md5 2&#xff0c;创建nginx用户 如果没有nginx&#xff0c;启动nginx时会报错 [rootlocalhost nginx-1.11.2]# /usr/local/nginx/sbin/nginx nginx: [emerg] getpwnam("ng…

宾馆管理系统mysql_宾馆管理系统(含源码和数据库文件)

【实例简介】因毕业设计而开发的一个C/S模式下的宾馆管理系统。开发环境为VS2010,SQL2005&#xff0c;开发语言为C#。资源中包含源代码和数据库文件(sql2005的mdf数据库文件)。使用时需要安装sql2005数据库&#xff0c;并设置sa的密码为123。附加数据文件后&#xff0c;本系统可…

2017-2018-2 20179215《网络攻防实践》第六周作业

2017-2018-2 20179215《网络攻防实践》 第六周学习总结 课本学习笔记 一、TCP/IP网络协议攻击 1.网络安全的属性&#xff1a;机密性 、完整性 、可用性 、真实性 、不可抵赖性 。 2.网络攻击的基本模式分为&#xff1a;截获&#xff08;嗅探 与 监听&#xff09; 、中断&#x…

mysql分布式一致性hash_分布式哈希一致性

问题分布式哈希一致性的动机是什么&#xff1f;相比其他有什么好处概述我们谈论的分布式哈希一致性常常使用在负载均衡&#xff0c;权衡一个策略的好坏&#xff0c;我们常常谈到扩展性和容错性。我们可以从以下两个方面来考量扩展性 &#xff1a;水平扩展和垂直扩展&#xff0c…

css3 - target

通过CSS3伪元素target&#xff0c;我们可以实现拉风琴 源码 1 <!DOCTYPE HTML>2 <html lang"en-US">3 4 <head>5 <meta charset"UTF-8">6 <title>垂直手风琴</title>7 <style type"text/css"…

javascript中打印对象显示[object object]_js如何打印object对象

这篇文章主要介绍了js如何打印object对象,需要的朋友可以参考下 js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个函数,能够将数组或者对象这类的结果一一打印出来…

4.15

六个基本&#xff1a; 1&#xff1a;join&#xff08;除了字符串 在其他的数据类型中也有可能遇到&#xff09; text"选择" t‘ ’ vt.join(text) print(v) 输出结果为&#xff1a; 选 择 t2‘_’ v2t2.join(text) print(v2) 输出结果为&#xff1a;选_择 2.split: t…

弹弹堂sf发布网_私服冒险岛,新开私服冒险岛,心动sf冒险岛发布网,最新开的私服冒险岛应该如何快速的获取魅力呢?...

私服冒险岛,新开私服冒险岛,心动sf冒险岛发布网,最新开的私服冒险岛应该如何快速的获取魅力呢&#xff1f;不同的游戏&#xff0c;我们在操作的时候&#xff0c;最主要的一点就是想要去涨经验&#xff0c;只有通过经验的积累才可以快速的升级&#xff0c;才可以进入到更多的地图…

Linux空硬盘从分区到挂载

(1).临时挂载&#xff1a;[rootCentOS6 桌面]# fdisk /dev/sdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x4ef8fb05. Changes will remain in memory only, until you decide…

svm解决兵王问题_机器学习: svm

本周学习内容为SVM的基本原理和运用。参考资料&#xff1a;耳东陈&#xff1a;零基础学SVM—Support Vector Machine(一)1、什么是SVMSVM的全称是Support Vector Machine&#xff0c;即支持向量机&#xff0c;主要用于解决模式识别领域中的数据分类问题&#xff0c;属于有监督学…

Django基础11(Django中form表单)

Form介绍 之前在HTML页面中利用form表单向后端提交数据时&#xff0c;都会写一些获取用户输入的标签并且用form标签把它们包起来。 与此同时我们在好多场景下都需要对用户的输入做校验&#xff0c;比如校验用户是否输入&#xff0c;输入的长度和格式等正不正确。如果用户输入的…

mysql上k8s_通过搭建MySQL掌握k8s(Kubernetes)重要概念(上):网络与持久卷

上一篇"通过实例快速掌握k8s(Kubernetes)核心概念"讲解了k8s的核心概念&#xff0c;有了核心概念整个骨架就完整了&#xff0c;应付无状态程序已经够了&#xff0c;但还不够丰满。应用程序分成两种&#xff0c;无状态和有状态的。一般的前段和后端程序都是无状态的&a…

python简单笔记

Remarks&#xff1a;python中注意缩进&#xff08;Tab键或者4个空格&#xff09; print&#xff08;输出&#xff09; 格式&#xff1a;print&#xff08;values&#xff09; 字符串、数字、变量等都可以输出&#xff1a; 实例&#xff1a; print(1)->1 print(11)->2 a …

mysql字符集latin1_mysql的latin1字符集支持所有字符集

1. 先来看看latin1 (参考百度百科)Latin1是ISO-8859-1的别名&#xff0c;有些环境下写作Latin-1。ISO-8859-1编码是单字节编码&#xff0c;向下兼容ASCII&#xff0c;其编码范围是0x00-0xFF&#xff0c;0x00-0x7F之间完全和ASCII一致&#xff0c;0x80-0x9F之间是控制字符&#…

latex参考文献bib基本格式_在Latex中利用.bib进行参考文献管理

使用bibtex与jabref简化论文写作中的文献管理和引用bibtex是latex(中文Ctex可在www.ctex.org找到)的一个组件&#xff0c;用于文献引用。.bib是文献引用信息文件。1. IEEEtran包(Package)的下载打开WinEdt。选择Accessories->MiKTex->MiKTex Package Manager&#xff0c;…

BZOJ2302 [HAOI2011]Problem c 【dp】

题目 给n个人安排座位&#xff0c;先给每个人一个1~n的编号&#xff0c;设第i个人的编号为ai&#xff08;不同人的编号可以相同&#xff09;&#xff0c;接着从第一个人开始&#xff0c;大家依次入座&#xff0c;第i个人来了以后尝试坐到ai&#xff0c;如果ai被占据了&#xff…