eolink官网
  • 首页
  • api管理
  • API接口管理
  • API自动化测试
  • api文档
  • API网关
  • 接口自动化
  • 实现接口
  • 关键词
首页 网友投稿 第4968页发布的文章
  • 软件接口设计怎么做?前后端分离软件接口设计思路

    [置顶]软件接口设计怎么做?前后端分离软件接口设计思路

    API接口管理 •2022-09-21

    本文关于软件接口设计怎么做?前后端分离软件接口设计思路。好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。为什么在接口制定标准中说:一流的企业做标准,二流的企业...

    接口设计 软件接口设计 接口管理
  • 接口管理如何做?接口实现版本管理的意义和最佳方法

    [置顶]接口管理如何做?接口实现版本管理的意义和最佳方法

    API接口管理 •2022-10-27

    本文关于接口管理如何做?接口实现版本管理的意义和最佳方法。API版本管理的重要性不言而喻,对于API的设计者和使用者而言,版本管理都有着非常重要的意义。下面会从WEB API 版本管理的角度提供几种常...

    接口管理 api eolink eolinker
  • 实现API管理系统的关键

    [置顶]实现API管理系统的关键

    API接口管理 •2023-06-16

    下面将通过几个关键词的形式说明API管理的重要性和未来的实现方式。1.生命周期管理在整个API生命周期中更深入地集成所有工具将进一步提高生命周期循环的速度,而且更重要的是提供满足消费者需求的API。这...

    API API管理 API管理系统 实现API管理系统 实现API管理系统的关键 api管理工具
  • Java基础之Unsafe内存操作不安全类详解

    Java基础之Unsafe内存操作不安全类详解

    API接口管理 •2022-10-21

    Java基础之Unsafe内存操作不安全类详解简介Unsafe类使java拥有了像C语言的指针一样操作内存空间的能力,直接操作内存就意味着1、不受jvm管理,也就意味着无法被GC,需要我们手动GC,稍...

    安全
  • 高考后网上查询信息,注意防范没有 SSL证书的网站

    高考后网上查询信息,注意防范没有 SSL证书的网站

    Eolink技术文档 •2022-10-21

    高考后网上查询信息,注意防范没有 SSL证书的网站2022年高考落下帷幕,考生们终于可以长舒一口气了。但是,高考后续志愿填报,信息查询等也都是非常重要的。尤其是在考生进行高考信息查询过程中,一定要注意...

    安全 配置
  • 逆向调试入门-基础知识

    逆向调试入门-基础知识

    Eolink技术文档 •2022-10-21

    逆向调试入门-基础知识1、存储方式多字节数据存放顺序,分为大端存储、小端存储。大端存储模式:数据的低位保存在内存中的高地址中,数据的高位保存在内存中的低地址中;小端存储模式:数据的低位保存在内存中的低...

    接口 文件
  • 详解Java Socket通信封装MIna框架

    详解Java Socket通信封装MIna框架

    API接口管理 •2022-10-21

    详解Java Socket通信封装MIna框架核心类IoService :Mina中将服务端和客户端都看成是服务,这里提供统一接口IoService,这个接口的作用就是用来处理套接字机制。也正是IoS...

    接口 日志 配置
  • 逆向调试入门-windows保护机制

    逆向调试入门-windows保护机制

    Eolink技术文档 •2022-10-21

    逆向调试入门-windows保护机制如果一个计算机系统有多个用户,并且允许多个进程并发执行,那么数据访问应当加以控制。为此,可以通过机制确保只有经过操作系统授权,进程才可使用相应资源,如文件、内存、C...

    文件
  • 浏览器的一个秘密,99%的人不知道!

    浏览器的一个秘密,99%的人不知道!

    Eolink技术文档 •2022-10-21

    浏览器的一个秘密,99%的人不知道!大家好,我是程序员小黑,一个资深的互联网黑科技软件玩家。每天给大家更新各种免费手机软件、各种好玩有趣的功能福利、高效率工具!​​只有你想不到,没有我找不到​​今天给...

    代码
  • 运行结果

    通过输出结果和查看网络的内容,发现实际上id返回的结果是1234567890102349000,最后几位都变成了00, 这是因为,javascript的Number类型最大长度是17http://位,而后端返回的Long类型有19位,导致js的Number不能解析。

    方案

    既然不能使用js的Number接收,那么前端如何Long类型的数据呢,答案是js使用string类型接收

    方案一 @JsonSerialize 注解

    修改Dto的id字段,使用@JsonSerialize注解指定类型为string。

    这个方案有一个问题,就是需要程序员明确指定@JsonSerialize, 在实际的使用过程中,程序员会很少注意到Long类型的问题,只有和前端联调的时候发现不对。

    @Data

    public static class GetLongValueDto{

    @JsonSerialize(using= ToStringSerializer.class)

    private Long id;

    }

    方案二 全局处理器

    添加Configuration, 处理 HttpMessageConverter

    @Configuration

    public class WebConfiguration implements WebMvcConfigurer {

    /**

    * 序列化json时,将所有的long变成string

    * 因为js中得数字类型不能包含所有的java long值

    */

    @Override

    public void configureMessageConverters(List> converters) {

    MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();

    ObjectMapper objectMapper = new ObjectMapper();

    SimpleModule simpleModule=new SimpleModule();

    simpleModule.addSerializer(Long.class, ToStringSerializer.instance);

    simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);

    objectMapper.registerModule(simpleModule);

    jackson2HttpMessageConverter.setObjectMapper(objectMapper);

    converters.add(0,jackson2HttpMessageConverter);

    }

    }

    @Data

    public static class GetLongValueDto{

    private Long id;

    }

    发现没有@JsonSerialize注解的信息,前端接收到的数据,也是string类型了。

    与swagger集成

    上面只是解决了传输时的long类型转string,但是当集成了swagger时,swagger文档描述的类型仍然是number类型的,这样在根据swagger文档生成时,会出现类型不匹配的问题

    swagger 文档集成

    pom或gradle

    implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0'

    io.springfox

    springfox-boot-starter

    3.0.0

    查看文档, 发现 GetLongValueDto 描述的id类型是 integer($int64)

    swagger long类型描述为string

    需要修改swagger的配置, 修改 Docket 的配置

    .directModelSubstitute(Long.class, String.class)

    .directModelSubstitute(long.class, String.class)

    @Configuration

    public class SwaggerConfig {

    @Bean

    public Docket api() {

    return new Docket(DocumentationType.SWAGGER_2)

    .select()

    .apis(RequestHandlerSelectors.any())//api的配置路径

    .paths(PathSelectors.any())//扫描路径选择

    .build()

    .directModelSubstitute(Long.class, String.class)

    .directModelSubstitute(long.class, String.class)

    .apiInfo(apiInfo());

    }

    private ApiInfo apiInfo() {

    return new ApiInfoBuilder()

    .title("title") //文档标题

    .description("description" alt="解析Spring Mvc Long类型精度丢失问题" title="解析Spring Mvc Long类型精度丢失问题" width="200" height="150">

    解析Spring Mvc Long类型精度丢失问题

    API接口管理 •2022-10-21

    解析Spring Mvc Long类型精度丢失问题背景在使用Spring Boot Mvc的项目中,使用Long类型作为id的类型,但是当前端使用Number类型接收Long类型数据时,由于前端精度问...

    api
  • 逆向调试入门-了解PE结构文件

    逆向调试入门-了解PE结构文件

    Eolink技术文档 •2022-10-21

    逆向调试入门-了解PE结构文件这里的PE文件指的是PE(Portable Executable)文件,即可移植的可执行文件,是 Windows 操作系统上主流的可执行文件。常见的 EXE、DLL、OC...

    文件
  • EasyCVR硬件盒子如何设置断电自启动

    EasyCVR硬件盒子如何设置断电自启动

    Eolink技术文档 •2022-10-21

    EasyCVR硬件盒子如何设置断电自启动EasyCVR是我们接入协议最广泛的视频平台,除了主流标准协议GB28181、RTSP/Onvif、RTMP等,还可支持厂家私有协议与SDK接入,比如海康Eho...

    配置
  • Java 内存安全问题的注意事项

    Java 内存安全问题的注意事项

    API接口管理 •2022-10-21

    Java 内存安全问题的注意事项前言java在内存管理方面是要比C/C++更方便的,不需要为每一个对象编写释放内存的代码,JVM虚拟机将为我们选择合适的时间释放内存空间,使得程序不容易出现内存泄漏和溢...

    接口 安全 文件
  • 首页
  • 上一页
  • 4964
  • 4965
  • 4966
  • 4967
  • 4968
  • 4969
  • 4970
  • 4971
  • 4972
  • 4973
  • 下一页
  • 尾页

推荐文章

    • 接口调用是什么意思?几种常用接口调用方式

    • 接口设计原则

    • 8款在线 API 接口文档管理工具

    • api管理系统是什么?

    • 什么是接口调试?接口调试的步骤有哪些?

    • api 接口管理系统有哪些?

    • 接口测试有几种测试方法

    • API文档生成工具有哪些?

    • 微服务和api网关区别

    • 交换机配置步骤

最近发表

  • 多平台统一管理软件接口,如何实现多平台统一管理软件接口
  • Flask接口签名sign原理与实例代码浅析
  • java中的接口是类吗
  • vue项目接口域名动态的获取方法
  • zookeeper python接口实例详解
  • Iterator与LIstIterator接口在java中的区别有哪些
  • c#自定义Attribute获取接口实现示例代码
  • hdml指的是什么接口
  • 分析EBS常用接口表
  • java 单机接口限流处理方案

热门文章

  • 抖音1到60级价格表,抖音刷到60级需要多少人民币(2000万元)2022-11-06
  • 荷花烟多少钱一包,荷花价格表2022价格表(最低售价32元)2022-11-06
  • 手机号码查询机主姓名API(移动手机号码查询机主姓名)2022-11-04
  • 社工库查询API(社工库查询号信息)2022-11-03
  • 连接共享文件夹时输入凭证(打开共享文件夹需要输入网络凭据)2023-02-02
  • JavaScript 操作历史记录api 怎样使用 JavaScript 操作浏览器历史记录 API(javascriptjava成熟欢迎)2022-06-07
  • 安装base.apk.1的软件?2023-12-09
  • 华为交换机console口设置密码及状态查看命令(华为交换机console口密码默认)2022-09-21
Eolink
分子生物学知识 TideFlow-AISEO自动化营销系统 3D打印机资讯 协同办公资讯 协作机器人 电商数据分析 数据可视化 生产管理资讯

© 2023 XWNews 京ICP备1111040123号-1 版权归zblog所有