1、什么是Swagger

Swagger 项目已于 2015 年捐赠给 OpenAPI 计划,自此它被称为 OpenAPI。 这两个名称可互换使用。 不过,“OpenAPI”指的是规范。 “Swagger”指的是来自使用 OpenAPI 规范的 SmartBear 的开放源代码和商业产品系列。

简而言之:OpenAPI 是一种规范。

Swagger 是一种使用 OpenAPI 规范的工具。 例如,OpenAPIGenerator 和 SwaggerUI

OpenAPI 规范是描述 API 功能的文档。 该文档基于控制器和模型中的 XML 和属性注释。 它是 OpenAPI 流的核心部分,用于驱动诸如 SwaggerUI 之类的工具

Swagger UI 提供了基于 Web 的 UI,它使用生成的 OpenAPI 规范提供有关服务的信息。 Swashbuckle 和 NSwag 均包含 Swagger UI 的嵌入式版本,因此可使用中间件注册调用将该嵌入式版本托管在 ASP.NET Core 应用中。 Web UI 如下所示:

接下来开搞,分别有java版和asp.net版

2、spring boot项目配置swagger

打开本教程的小白开发微信小程序19--网络API(java版)项目,地址:https://blog.csdn.net/hqwest/article/details/129555961

  1. 修改配置文件,增加一行

2、pom.xml文件添加依赖项

3、创建swagger配置类

SwaggerConfig.java代码

package com.west.webapidemo.config;import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration
@EnableSwagger2
public class SwaggerConfig {@Beanpublic Docket createRestApi() {return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.west.webapidemo.controller")).paths(PathSelectors.any()).build();}/*** 创建该API的基本信息* 访问地址:http://localhost:8080/swagger-ui/index.html* @return*/private ApiInfo apiInfo() {return new ApiInfoBuilder().title("微信小程序项目").description("更多请关注项目组信息").termsOfServiceUrl("https://www.cnblogs.com/").version("1.0").build();}
}

4、创建一个实体类

5、修改HelloController代码,增加方法和描述

完整代码

package com.west.webapidemo.controller;import com.west.webapidemo.entity.product;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;@Api(tags={"小程序后台api"})
@RestController
@RequestMapping("/weixinapi/")
public class HelloController {@ApiOperation(value="测试接口")@GetMapping("hello")public  String  hello(){return "大家好,我是boss!";}@ApiOperation(value="查询工号")@ApiImplicitParam(name="eid",value="工号")@GetMapping("great")public String great(String eid){String result="我的工号:"+eid;return  result;}/*** 查询图书数量* @param title 标题* @return 图书数据*/@ApiOperation(value="查询图书数量")@ApiImplicitParam(name="title",value="标题")@GetMapping("findbook")public String findbook(String title){return  "共有9本"+title+"图书.";}/*** 获取所有图书* @return*/@ApiOperation(value="获取所有图书列表")@GetMapping("findall")public List<product> queryproducts(){List<product> productList=getProdcuts();return  productList;}@ApiOperation(value="删除指定的图书")@DeleteMapping("delete")public void DeleteproductbyId(int id){//具体处理过程省略}private List<product> getProdcuts() {List<product> productList=new ArrayList<product>();product p1=new product();p1.id=8807;p1.title="java开发入门";p1.author="蔡洪";p1.publisher="南方大学出版社";p1.image="img01.jpg";productList.add(p1);product p2=new product();p2.id=9053;p2.title="微信小程序教程";p2.author="张有平";p2.publisher="吉林出版社";p2.image="img02.jpg";productList.add(p2);product p3=new product();p3.id=6853;p3.title="html学习技术";p3.author="刘强西";p3.publisher="吉林出版社";p3.image="img03.jpg";productList.add(p3);return productList;}
}

6、启动项目,打开接口文档

7、小程序页面请求,获取图书列表,效果如下

1、wxml结构

2、wxss样式

3、js代码

// pages/myjava/myjava.js
Page({/*** 页面的初始数据*/data: { bklist: []},/*** 生命周期函数--监听页面加载*/onLoad(options) {this.getBookList();//调用方法},//获取图书列表getBookList() {var that = this;wx.request({url: 'http://localhost:8080/weixinapi/findall',data: {},method: "GET",header: {'content-type': 'application/json' // 默认值},success(txt) {//console.log(txt.data)that.setData({bklist: txt.data});}})}, /*** 生命周期函数--监听页面初次渲染完成*/onReady() {},/*** 生命周期函数--监听页面显示*/onShow() {},/*** 生命周期函数--监听页面隐藏*/onHide() {},/*** 生命周期函数--监听页面卸载*/onUnload() {},/*** 页面相关事件处理函数--监听用户下拉动作*/onPullDownRefresh() {},/*** 页面上拉触底事件的处理函数*/onReachBottom() {},/*** 用户点击右上角分享*/onShareAppMessage() {},//wx请求myapia() {wx.request({url: 'http://localhost:8080/weixinapi/hello', //接口地址data: {},header: {'content-type': 'application/json' // 默认值},success(res) {console.log(res.data)}})},//wx请求myapib() {wx.request({//http://localhost:8080/weixinapi/great?eid=809url: 'http://localhost:8080/weixinapi/great', //接口地址data: { eid: 531 },method: "GET",header: {'content-type': 'application/json' // 默认值},success(txt) {console.log(txt.data)}})},//wx请求myapic() {wx.request({url: 'http://localhost:8080/weixinapi/findbook', // 真实的接口地址data: { title: "手机维修" },method: "GET",header: {'content-type': 'application/json' // 默认值},success(txt) {console.log(txt.data)},fail() {console.log("网络有异常");}})},})

4、最后效果

3、asp.net core web api项目配置swagger文档

看“https://blog.csdn.net/hqwest/article/details/129559026”

小白开发微信小程序21--网络API(asp.net core版)

以及“https://blog.csdn.net/hqwest/article/details/129344051”

Asp.net core api swagger显示中文注释

屌丝终有逆袭日,木耳再无回粉时。

小白开发微信小程序20--web api文档制作相关推荐

  1. 小白开发微信小程序21--网络API(asp.net core版)

    1.什么是网络API 在一个网站里面发起https请求是很常见的,但是,由于微信小程序是腾讯内部的产品,不能直接打开一个外部的链接,例如,您在微信小程序里面无法直接打开网站,但是,在做小程序开发的时候 ...

  2. 微信小程序公众平台的文档链接

    微信小程序公众平台的文档链接:https://mp.weixin.qq.com/debug/wxadoc/dev/api/network-file.html

  3. 微信小程序绑定云服务器文档,微信小程序云开发搭建一个管理小程序.pdf

    微微信信小小程程序序云云开开发发 搭搭建建一一个个管管理理小小程程序序 概概述述 : 开发者可以使用云开发开发微信小程序.小游戏,无需搭建服务器,即可使用云 能力. 云开发为开发者提供完整的云 支持, ...

  4. 小白开发微信小程序49--本地服务器部署测试小程序

    相信大家对微信小程序的基础和项目应该没有太大问题了,如果还有对微信小程序开发有一些问题,请查看回顾...微信小程序开发者开发好一款微信小程序后,怎么才能发布呢?如何将其提交给微信审核呢? 在前面的[领 ...

  5. 微信小程序卡包wx.addcard文档缺失-ext参数说明

    前言 微信小程序卡包打通文档缺失,特别是wx.addcard文档,没有对ext参数有详细的说明,可能会导致跳转卡包领取界面时,提示参数错误等问题.因为小程序卡包文档缺失的问题,我在开发过程中遇到各种问 ...

  6. 小白开发微信小程序52--测试小程序

    经过前面的50,51两个重要的步骤之后,小程序的前端代码和后端代码终于部署在外网了,回顾这个过程,细节很多,环节很杂,而且麻烦,有这些过程:1)申请域名2)域名备案3)申请证书4)网站绑定证书5)管理 ...

  7. 小白开发微信小程序,用户清理后台导致登陆状态立刻失效是什么原因呀

    小白整了个登陆账号然后信息查询小程序,用户正常点小程序右上角的退出是没问题的,我测试是可以保持登陆状态的. 好奇怪呀.云函数的数据库里的用户信息我的权限已经设置为所有人可读了,基础库是2.2.4及以上 ...

  8. 微信小程序 - 按照官网文档构建npm包 - 提示【没有找到可以构建的npm】

    分析是因为没有package.json 因此应该先: 使用 -y 标记表示你能接受 package.json 文件的一些默认值: npm init -y 再进行 npm install 例如: npm ...

  9. 八月微信小程序导航:官方文档+精品教程+demo集合(8月25...

    2019独角兽企业重金招聘Python工程师标准>>> 1:官方工具: https://mp.weixin.qq.com/debug/w ... tml?t=147643467846 ...

最新文章

  1. Visual Studio 2012/2010/2008 远程调试
  2. 基于RT-Thread开发智能视觉组智能车 - 温州大学 - 春华秋实
  3. thrust 学习笔记
  4. HarmonyOS之后台代理定时提醒的功能使用
  5. 南通大学计算机系本二,2012年南通大学计算机科学与技术学院江苏省内第二批本科(院校代码:1301)...
  6. devops_您无法购买DevOps
  7. mysql %3e -u -r_mysql基础
  8. c++_cin.getline()与getline() _getline(cin,str,20)
  9. HDU 1754 I Hate It 线段树RMQ
  10. 由数据范围反推算法复杂度
  11. cuda编程(一)基础
  12. 帝国CMS二次开发会员注册激活后发送欢迎邮件方法
  13. java山地车可以改装吗_怎么样可以把山地车改的更简单一点?
  14. 金蝶实现EXCEL复制粘贴功能
  15. 2021年中国果汁产量、需求量及主要类型贸易情况分析[图]
  16. PHP发送邮件SMTP发邮件,超简单引用,CtrlCV即可实现邮件反馈系统
  17. mysql 快速造数据sql
  18. 为什么有的程序员能力一般却能拿到好offer?
  19. 浅谈一下低频高频时阻抗匹配的重要知识
  20. 小额贷款公司取金融牌照难实现 --》小额贷款公司可以改制成为村镇银行

热门文章

  1. PHP 屏幕亮度,win10屏幕亮度调不了怎么办
  2. 如何快速对Linux远程登录SSH服务进行安全加固?
  3. 计算机毕设(附源码)JAVA-SSM乐器销售管理系统
  4. H5画布 canvas(一)canvas简介、绘制圆形矩形、案例饼状图绘制
  5. 我的世界关闭服务器死亡消息提示,盘点《我的世界》的12种死法,MC最全的死亡提示!你经历过几个?...
  6. vue 上传附件设置必填项
  7. Mat数据的深浅拷贝
  8. Android Bluetooth(蓝牙) - 概念和框架
  9. 微信小程序开源源码,仿淘宝、京东、今日头条等
  10. python cumsum用法