一、使用Swagger2实时生成接口文档(分布式系统使用)

Swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法,参数和模型紧密集成到服务器端的代码,允许API来始终保持同步。Swagger 让部署管理和使用功能强大的API从未如此简单。

1.使用swagger生成实时接口文档

https://swagger.io/

2.引入Swagger2和swagger ui (在父工程中依赖)

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->

<dependency>

<groupId>io.springfox</groupId>

<artifactId>springfox-swagger2</artifactId>

<version>2.9.2</version>

</dependency>

<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->

<dependency>

<groupId>io.springfox</groupId>

<artifactId>springfox-swagger-ui</artifactId>

<version>2.9.2</version>

</dependency>

3.编写配置类(@EnableSwagger2 开启swagger2自动生成api文档功能)

package com.atguigu.user.config;

import org.springframework.context.annotation.Configuration;

import springfox.documentation.swagger2.annotations.EnableSwagger2;

@EnableSwagger2  //开启swagger2自动生成api文档的功能

@Configuration

public class AppSwaggerConfig {

}

4.访问swagger-ui

http://localhost:8080/swagger-ui.html

可以生成文档,可以直接进行服务接口调用测试。

package com.atguigu.scw.user.controller;

import org.springframework.web.bind.annotation.GetMapping;

import org.springframework.web.bind.annotation.RestController;

@RestController

public class HelloController {

@GetMapping("/hello")

public String hello(String name) {

return "OK:"+name;

}

}

swagger的注解介绍

  1. @Api(tags="")

    1. 用在请求的类上,表示对类的说明
    2. tags"说明该类的作用,可以在UI界面上看到的注解"
  2. @ApiOperation(value="")
    1. 用在请求的方法上,说明方法的用途、作用
    2. value="说明方法的用途、作用"
  3. @ApiImplicitParams
    1. 用在请求的方法上,表示一组参数说明
    2. @ApiImplicitParam
      1. @ApiImplicitParam:指定一个请求参数的各个方面
      2. value:参数的汉字说明、解释
      3. required:参数是否必须传
      4. paramType:参数放在哪个地方
        1. header –> 请求头的获取:@RequestHeader
        2. query –> 请求参数的获取:@RequestParam
        3. path(用于restful接口)–> 请求路径变量的获取:@PathVariable
        4. body(不常用)
        5. form(不常用)
      5. dataType:参数类型,默认String,其它值dataType="Integer"
      6. defaultValue:参数的默认值
  4. @ApiResponses
    1. 用在请求的方法上,表示一组响应
    2. @ApiResponse
      1. 用在@ApiResponses中,一般用于表达一个错误的响应信息
      2. code:数字,例如400
      3. message:信息,例如"请求参数没填好"
      4. response:抛出异常的类
  5. @ApiModel
    1. 主要有两种用途:
    2. 用于响应类上,表示一个返回响应数据的信息
    3. 入参实体:使用@RequestBody这样的场景, 请求参数无法使用@ApiImplicitParam注解进行描述的时候
    4. @ApiModelProperty
      1. 用在属性上,描述响应类的属性

二、lombok

lombok基于字节码,可以使我们不用繁琐的进行entity,vo层的开发,利用注解就可以生成toString,get/set方法。

1、common项目中引入lombok(简化javaBean开发)

不用指定版本,SpringBoot底层也引入lombok包,1.16.22

<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->

<dependency>

<groupId>org.projectlombok</groupId>

<artifactId>lombok</artifactId>

<!-- <version>1.18.6</version>--> <!—SpringBoot框架引用版本就是1.18.8-->

<scope>provided</scope>

</dependency>

2.在IDEA集成lombok插件

3.使用注解

  1. https://www.projectlombok.org/
  2. @Data:提供getter/setter
  3. @NoArgsConstructor, 无参构造器 @RequiredArgsConstructor   @AllArgsConstructor  全参数构造器
  4. @EqualsAndHashCode:提供equals和hashCode方法
  5. @Log:快速的使用slf4j日志
  6. @Log4j:快速使用log4j日志
  7. @Log4j2:快速使用log4j2
  8. @Getter/@Setter
  9. @Slf4j 内置log对象,直接调用日志方法输出日志
  10. @ToString

三、使用短信API服务

现在很多网站都使用手机验证码登陆,如何实现的呢?联系电信移动联通运营商?显然不现实,我们可以使用第三方中介来使用这种服务。

发短信的接口?第三方公司把这个功能写成REST API,让公众调用

1.购买短信API

在项目中以发送请求的方式来进行短信api 的调用

2.在阿里云中搜索“短信”,可以找到一堆提供短信服务的第三方公司

3.通过【去调试】进行测试

只需要填写手机号码即可

4.通过postman工具,自己发送请求。

要在请求头中附加我们的认证信息,即购买完短信服务后的AppCode

请求头:Authrization   值为(APPCODE 自己的APPCODE)  注意中间要有空格

在请求体信息中写入手机、验证码、消息模板

5.使用java代码进行测试

1)引入httputil的依赖,将HttpUtil工具类引入到工作空间

2)见示例代码

package com.xijian;import org.apache.http.HttpResponse;import java.util.HashMap;
import java.util.Map;public class SmsTest {public static void main(String[] args) {String host = "http://dingxin.market.alicloudapi.com";String path = "/dx/sendSms";String method = "POST";String appcode = "62c2ebd07c7c4a95b270feff6c896c6c";Map<String, String> headers = new HashMap<String, String>();// 最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105headers.put("Authorization", "APPCODE " + appcode);Map<String, String> querys = new HashMap<String, String>();querys.put("mobile", "18610025821");querys.put("param", "code:9966");querys.put("tpl_id", "TP1711063");Map<String, String> bodys = new HashMap<String, String>();try {/*** 重要提示如下: HttpUtils请从* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java* 下载** 相应的依赖请参照* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml*/HttpResponse response = HttpUtils.doPost(host, path, method,headers, querys, bodys);System.out.println(response.toString());// 获取response的body// System.out.println(EntityUtils.toString(response.getEntity()));//{"return_code":"00000","order_id":"ALY1549881237643456814"}} catch (Exception e) {e.printStackTrace();}}
}

项目中Swagger2、lombok(小辣椒)、以及短信API的调用 简单介绍相关推荐

  1. 飞信免费发短信API接口调用方式

    飞信免费发短信API接口调用方式(通过HTTP访问以下网址.支持GET和POST): http://sms.api.bz/fetion.php?username=您的移动飞信登录手机号&pas ...

  2. JAVA 短信API接口调用 附 文档 Demo

    JAVA 短信API接口调用 附 文档 Demo 1.请求地址 http://host:port/sms 请求方式可以 POST 和 GET方式,建议采用POST方式 2.参数说明 参数需要 URLE ...

  3. wuzhicms短信API 实例调用

    1.接口调用 $sendsms = load_class('sms','sms');echo $sendsms->send_sms('18911549611', '888888', 1); // ...

  4. wuzhicms 短信API 实例调用

    1.接口调用 $sendsms = load_class('sms','sms'); echo $sendsms->send_sms('18911549611', '888888', 1); / ...

  5. php 腾讯短信接口api,关于腾讯云短信 API 成功调用的分享

    腾讯云短信签名申请我用的个人公众号,很快就过审了,在这把需要注意的跟大家说一下.我发现很多人都没提到重点,复制粘贴党容易踩坑. 签名审核通过后,创建正文模板,如下图: 然后按照书本教程基本操作完成后, ...

  6. 调用阿里云短信API发送短信通知

    调用阿里云短信API发送短信通知 昨天领导让我弄一个短信通知功能,原来也没有搞过,刚接过来的时候亚历山大,感觉很难搞.但是看过官方文档之后还是挺简单的.来让我们看一下这个短信接口怎么搞吧. 首先你需要 ...

  7. 中国移动飞信免费发短信API接口(第三方)

    飞信是由中国移动通信集团公司推出的一款集商务应用和娱乐功能为一体的,基于手机应用以及与Internet深度互通的即时通讯产品,可免费给好友发送短信. 1.下载中国移动飞信PC客户端软件(http:// ...

  8. 中国移动飞信免费发短信API接口(第三方 Fetion API)

    [文章作者:张宴 本文版本:v1.1 最后修改:2010.08.03 转载请注明原文链接: http://blog.s135.com/fetion_api/ ] 备注:2010年7月底移动飞信修改协议 ...

  9. 中国移动飞信免费发短信API接口(第三方) 1

    Code [文章作者:张宴 本文版本:v1.0 最后修改:2009.03.22 转载请注明原文链接:http://blog.s135.com/fetion_api/] 飞信是由中国移动通信集团公司推出 ...

最新文章

  1. OpenCV中的二进制鲁棒独立基本特征——BRIEF
  2. Linux内核网络栈1.2.13-网卡设备的初始化流程
  3. 5弹出搜索框_实用小技巧,电脑总是弹出广告,手把手教你永久关闭广告弹窗...
  4. 黄聪:C#代码生成工具:文本模板初体验 Hello,World!
  5. thymeleaf的具体语法
  6. maven 配置文件 settings.xml
  7. 黑侠百度URL批量推送程序
  8. C++/C代码审查表
  9. knight tour java,Knight Tour Problem
  10. 计算机主板及其硬件图,[计算机硬件及网络]intel G43主板电路图.pdf
  11. 贪心 穷举 动态规划 区别
  12. 雷达系统仿真——线性调频信号的仿真
  13. Materials Studio教程(中科大)
  14. ListView源码(推荐)
  15. matlab app designer学习笔记1——简易计算器
  16. jsp汽车销售系统带前端
  17. 中国铸造机械行业市场规模及未来发展趋势
  18. JVM之通过jstat命令进行查看堆内存使用情况
  19. 基于Web的商城后台管理系统的设计与实现
  20. 京东数科Java一面面经

热门文章

  1. EMQX 入门教程 环境篇④——修改HTTP:Dashboard监听的端口
  2. 小程序textarea完美填坑
  3. 记一次 vivo x21 Android 8.1.1 调试Apk填坑
  4. 富文本编辑器 CKeditor 配置使用+上传图片
  5. 清理Xcode DerivedData文件
  6. Python成长之路【第九篇】:Python基础之面向对象
  7. golang快速入门--爬虫--基于colly框架的爬虫案例
  8. PHP打印输出log
  9. postgre基本用法(一)
  10. 使用华为手机对android studio进行真机调试(我的是荣耀V10,其他类型手机可以参考)