笔者的JSON如下: { "code": 10001, "message": "成功", "nextUrl": null, "data": { "updateTime": "2020-02-23 13:43:18", "result": [ { "confirm": 24, "suspect": 0, &qu…
Restful简介 Restful一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件.它主要用于客户端和服务器交互类的软件.基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制. 随着Restful风格的流行,现在更多的人叫HTTP接口为Restful接口.所以还是很有必要了解下Restful的一些基础约定的. Rest架构的主要原则 网络上的所有事物都被抽象为资源,使用http方法表示具体操作,如下: 幂等的意思是说,多次相同的请求,数据是保持一致的. res…
报错信息,大致如下 c.c.c.c.a.BaseControllerExceptionHandler : 运行时异常: java.lang.IllegalStateException: No primary or default constructor found for interface java.util.List at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.createAttribu…
一.知识点 代码中对应的知识点 1.jsonPath github网址 1)操作符见文档 2)方法见文档 3)例子见文档 2.MockMvc(org.springframework.test.web.servlet.MockMvc) 作用是伪造一个mvc的环境 其方法使用: perform:执行一个RequestBuilder请求,会自动执行SpringMVC的流程并映射到相应的控制器执行处理: get:声明发送一个get请求的方法.MockHttpServletRequestBuilder g…
什么是跨域 简单的说即为浏览器限制访问A站点下的js代码对B站点下的url进行ajax请求.比如说,前端域名是www.abc.com,那么在当前环境中运行的js代码,出于安全考虑,访问www.xyz.com域名下的资源,是受到限制的.现代浏览器默认都会基于安全原因而阻止跨域的ajax请求,这是现代浏览器中必备的功能,但是往往给开发带来不便.特别是对我这样后台开发人员来讲,这个事情简直神奇. 但跨域的需求却一直都在,为了跨域,勤劳勇敢的程序猿们想出了许许多多的方法,例如,jsonP.代理文件等等.…
package com.weiresearch.properties; import com.fasterxml.jackson.annotation.JsonInclude;import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.JsonSerializer;imp…
Springboot 使用越来越多,企业的基本框架,到Springcloud分布式,可以说无论面试还是平常技术学习,一说到spring几乎就就代替了Java,可以说spring,springboot的力量之强大: 今天的主角是WebMvcConfigurer : 这个接口很重要,如果一个项目没有拦截器,想想就可怕,小编也是遇到过类似的问题: 这个接口主要功能如下: addInterceptors:拦截器 addViewControllers:页面跳转 addResourceHandlers:静态…
在设计接口时,有很多因素要考虑,如接口的业务定位,接口的安全性,接口的可扩展性.接口的稳定性.接口的跨域性.接口的协议规则.接口的路径规则.接口单一原则.接口过滤和接口组合等诸多因素,本篇文章将简要分析这些因素. 一 规范性建议 1.职责原则 在设计接口时,必须明确接口的职责,即接口类型,接口应解决什么业务问题等 2.单一性原则 在明确接口职责的条件下,尽量做到接口单一,即一个接口只做一件事,而非两件以上.很多非资深接口设计者,在设计接口时,总认为接口所做的事越多,越牛叉,这是非常严重的错误认识…
在设计接口时,有很多因素要考虑,如接口的业务定位,接口的安全性,接口的可扩展性.接口的稳定性.接口的跨域性.接口的协议规则.接口的路径规则.接口单一原则.接口过滤和接口组合等诸多因素,本篇文章将简要分析这些因素. 一 规范性建议 1.职责原则 在设计接口时,必须明确接口的职责,即接口类型,接口应解决什么业务问题等 2.单一性原则 在明确接口职责的条件下,尽量做到接口单一,即一个接口只做一件事,而非两件以上.很多非资深接口设计者,在设计接口时,总认为接口所做的事越多,越牛叉,这是非常严重的错误认识…
官方原文:https://spring.io/blog/2015/06/08/cors-support-in-spring-framework ===抽空翻译 最简单办法:在方法上增加注解: @CrossOrigin 注意事项: 1.SpringBoot需要1.3以上才支持该注解 2.方法需要显试声明调用方式(get或post)…
问题1 用RedisTemplate存入map值的时候,用rdm可视化打开,看到的是转码之后的数据,如图: 存入的方法为: public boolean hmset(String key, Map<String, Object> map) { try { redisTemplate.opsForHash().putAll(key, map); return true; } catch (Exception e) { log.error(key, e); return false; } } 问题…
来源 :https://my.oschina.net/Adven/blog/3036567 使用springboot-web编写rest接口,接口需要返回json数据,目前国内比较常用的fastjson使用比较方便,但是SpringBoot默认使用的Jackson,替换的时候有时候因为其他组件也使用到了jackson,所以无法100%成功替换. 不喜欢使用jackson主要是jackson对格式化输出支持不太友好,自己使用的时候遇到许多坑,至今也没把坑填好,所以一直就不待见它,有时候又不得不用.…
jmeter 测试restful接口,JSON数据格式 1.添加线程组 2.添加HTTP信息头管理器 请求发送JSON数据格式参数,需要设置Content-Type为application/json 3.添加HTTP请求…
    上一节我们了解了基于 XML 的 SOAP 协议,SOAP 的 S 是啥意思来着?是 Simple,但是好像一点儿都不简单啊! 传输协议问题     对于 SOAP 来讲,比如我创建一个订单,用 POST,在 XML 里面写明动作是 CreateOrder:删除一个订单,还是用 POST,在 XML 里面写明了动作是 DeleteOrder.其实创建订单完全可以使用 POST 动作,然后在 XML 里面放一个订单的信息就可以了,而删除用 DELETE 动作,然后在 XML 里面放一个订单…
背景 在springboot中使用redis缓存结合spring缓存注解,当缓存成功后使用gui界面查看redis中的数据 原因 springboot缓存默认的序列化是jdk提供的 Serializable 方式 解决方法 如果想要序列化成json格式的缓存数据,可以自定义一个redis的config类,设置序列化规则即可,如下: @Configuration public class RedisConfig extends CachingConfigurerSupport { @Autowir…
SpringBoot第十一集:整合Swagger3.0与RESTful接口整合返回值(2020最新最易懂) 一,整合Swagger3.0 随着Spring Boot.Spring Cloud等微服务的流行,在微服务的设计下,小公司微服务工程jar小的几十个,大公司大的工程拆分jar多则几百上万个,这么多的微服务必定产生了大量的接口调用.而接口的调用就必定要写接口文档(由开发人员编写). 存在的问题:(面对多个开发人员或多个开发团队) 项目开发接口众多,细节,复杂,且多样化,高质量地创建接口文档费…
前言 现在我们做项目基本上中大型项目都是选择前后端分离,前后端分离已经成了一个趋势了,所以总这样·我们就要和前端约定统一的api 接口返回json 格式, 这样我们需要封装一个统一通用全局 模版api返回格式,下次再写项目时候直接拿来用就可以了 约定JSON格式 一般我们和前端约定json格式是这样的 { "code": 200, "message": "成功", "data": { } } code: 返回状态码 messa…
目录 SpringBoot 核心注解 SpringBoot Restful 接口实现 封装响应数据 SpringBoot 核心注解 SpringBoot 基础入门 注解 说明 Component 声明为 SpringBoot 的 bean Repository 用于 dao 层的 bean Autowired 用于向一个 bean 中注入其他 bean Service 用于 service 层的 bean Configuration 用于声明 SpringBoot 的配置文件类 Value("$…
数据是企业的第四张名片,企业级开发中少不了数据的加密传输,所以本文介绍下SpringBoot中接口数据加密.解密的方式. 本文目录 一.加密方案介绍二.实现原理三.实战四.测试五.踩到的坑 一.加密方案介绍 对接口的加密解密操作主要有下面两种方式: 自定义消息转换器 优势:仅需实现接口,配置简单.劣势:仅能对同一类型的MediaType进行加解密操作,不灵活. 使用spring提供的接口RequestBodyAdvice和ResponseBodyAdvice 优势:可以按照请求的Referrer…
一.简介    Restful是一种对url进行规范的编码风格,通常一个网址对应一个资源,访问形式类似http://xxx.com/xx/{id}/{id}. 举个栗子,当我们在某购物网站上买手机时会有很多品牌选择,而每种品牌下又有很多型号,那么https://mall.com/mobile/iphone/6 代表了Iphone6,https://mall.com/mobile/iphone/7和https://mall.com/mobile/iphone/8分别代表了Iphone7和Iphon…
环境:jdk1.8.maven.springboot 问题:前端通过json传了一个日期:date:2019-03-01(我限制不了前端开发给到后端的日期为固定格式,有些人就是这么不配合),     而springboot中默认使用jackson做json序列化和反序列化,后台接收数据时将日期字符串转成LocalDateTime时,会报错: Caused by: com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot d…
这几天,调用别人接口返回json数据含有特殊符号(双引号),当转换成json对象总是报错, json字符格式如下 { "BOXINFO":[ { ", "ITEM_NAME":"抗链球菌溶血素"O"(ASO)测定试剂盒(胶乳免)", , "NOTES":"厂牌(河北恒利集团制药股份有限公司)批号(1172292)" }, { ", "ITEM_NAME&qu…
内置模块和第三方模块 json模块和pickle 模块(序列化模块) 什么是序列化? 序列化就是将内粗这种的数据类型转成另一种格式 序列化:字典类型——>序列化——>其他格式——>存入硬盘(存) 反序列化:硬盘——>读取——>其他格式——>反序列化——>字典(取) 为什么要序列化? 1.长久保存程序的运行状态 2.数据的跨平台交互 如何序列化 json: 优点:这种是一种通用的格式,所有编程语言识别 缺点:不能识别所有python类型 pickle: 优点:能识别…
基于restful接口的身份认证,可以采用jwt的方式实现,想了解jwt,可以查询相关资料,这里不做介绍~ 下面直接看如何实现 1.首先添加jwt的jar包,pom.xml中添加依赖包: <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency&…
aware:英 [əˈweə(r)] 美 [əˈwer] adj.意识到的;知道的;觉察到的 XXXAware在spring里表示对XXX感知,实现XXXAware接口,并通过实现对应的set-XXX方法,然后就可以使用XXX了. 通俗的解释:如果在某个类里面想要使用spring的一些东西,就可以通过实行XXXAware接口告诉spring,spring会到最后给你送过来,而接收的方式是通过实现接口唯一的方法set-XXX.比如,有一个类想要使用当前的ApplicationContext,那么我…
在.Net Core 3.0中 内置了一套Json序列化/反序列化方案,默认可以不再依赖,不再支持   Newtonsoft.Json. 但是.NET Core 3.0 System.Text.Json 和 Newtonsoft.Json 使用方法不一致,对于3.0以前版本升级有限制.如果前端代码以固定更没法用了. 在Asp.Net Core 3.0中如何使用  Newtonsoft.Json 库序列化数据 官方给出了兼容处理方案,操作步骤如下: 1.引用Microsoft.AspNetCore…
一:接口测试过程中GET请求与POST请求的主要区别 从开发角度我们看get与post的主要区别是:1.Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据:2.Get安全性比Post低:Get将表单中数据的按照key=value的形式,添加到action(动作或者说操作)所指向的url后面,并且两者使用“?”连接,而各个变量之间使用 “&”连接:Post是将表单中的数据放在form的数据体中,按照键值对方式,传递到action所指向url:3.Post传输的数据量大,可以达到2M…
本篇文章将介绍如何使junit在springBoot中测试文件的上传,首先先阅读如何在springBoot中进行接口测试. 文件上传操作测试代码 import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.t…
目录 一.在SpringBoot项目中配置Swagger2 1.pom.xml中对Swagger2的依赖 2.编写配置类启用Swagger 3.配置实体类的文档 4.配置接口的文档 5.访问文档 二.接口前后台分离的配置 1.接口分离 2.对前后台接口进行分组配置 在开发过程中,java后端需要与客户端进行交互,需要将后端的接口及参数写成文档给调用者查阅.一个问题也有此而生,需求改动频繁,接口设计也会随之改动,文档修改的不及时会带来很大的问题. Swagger是一个自动生成文档的工具,可以在线查…
百度地图地理编码(GeoCoder)服务接口返回的Json格式的数据,如下所示: http://api.map.baidu.com/geocoding/v3/?address=**省**市**区**路**号院**社区&output=json&ak=您的AK密钥 返回结果实例: { , "result": { "location":{"lng":116.79, "lat":39.99}, , , , "…