
API
zl1zl2zl3
这个作者很懒,什么都没留下…
展开
-
Spring Boot 无侵入式 实现 API 接口统一 JSON 格式返回
无侵入式 统一返回JSON格式其实本没有没打算写这篇博客的,但还是要写一下写这篇博客的起因是因为,现在呆着的这家公司居然没有统一的API返回格式?,询问主管他居然告诉我用HTTP状态码就够用了(fxxk),天哪HTTP状态码真的够用吗?在仔细的阅读了项目源码后发现,在API请求的是居然没有业务异常(黑人问好)。好吧 居然入坑了只能遵照项目风格了,懒得吐槽了。因为项目已经开发了半年多了, 要是全部接口都做修改工作量还是挺大的, 只能用这种无侵入式的方案来解决.“项目源代码: https://转载 2020-09-08 11:27:14 · 1967 阅读 · 2 评论 -
为什么 RestTemplate 那么棒,看这篇就够了!
作者:duanxz来源:cnblogs.com/duanxz/p/3510622.html在微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端。我们可以使用JDK原生的URLConnection、Apache的Http Client、Netty的异步HTTP Client, Spring的RestTemplate。但是,用起来最方便、最优雅的还是要属Feign了。这里介绍的是RestTemplate。什么是RestTemplate?RestTemp.转载 2020-09-07 09:58:35 · 3266 阅读 · 0 评论 -
一文带你 API 网关从入门到放弃
前言假设你正在开发一个电商网站,那么这里会涉及到很多后端的微服务,比如会员、商品、推荐服务等等。那么这里就会遇到一个问题,APP/Browser怎么去访问这些后端的服务? 如果业务比较简单的话,可以给每个业务都分配一个独立的域名(https://service.api.company.com),但这种方式会有几个问题: 每个业务都会需要鉴权、限流、权限校验等逻辑,如果每个业务都各自为战,自己造轮子实现一遍,会很蛋疼,完全可以抽出来,放到一个统一的地方去做。 如果业务量比较简单的话转载 2020-08-18 15:54:00 · 335 阅读 · 0 评论 -
原创 | OpenAPI 标准规范
什么是API规范API 是模块或者子系统之间交互的接口定义。好的系统架构离不开好的 API 设计,而一个设计不够完善的 API 则注定会导致系统的后续发展和维护非常困难。在关键环节制定明确的API规范有助于 Service 对内提高产品间互通的效率,对外提供一致的使用体验,也有助于更好地被集成。对于API规范,比较知名的是OpenAPI Specfication[1]和Google API Design Guide[2]。前者针对 RESTful API 设计在细节层面给出了非常具体的规定,已...转载 2020-07-23 14:03:15 · 669 阅读 · 0 评论 -
一篇来自前端同学对后端接口的吐槽:痛!
前言去年的某个时候就想写一篇关于接口的吐槽,当时后端提出了接口方案对于我来说调用起来非常难受,但又说不上为什么,没有论点论据所以也就作罢。最近因为写全栈的缘故,团队内部也遇到了一些关于接口设计的问题,于是开始思考实现接口的最佳实践是什么。在参考了许多资料之后,逐渐对这个问题有了自己的理解。同时回想起过去的经验,终于恍然大悟自己当时的痛点在哪里。既然是吐槽,那么请原谅我接下来态度的不友善。本文中列举的所有例子都是我个人的亲身经历。谁应该主导接口的设计或者更直白一些,应该是接口的消费方还是提供方转载 2020-07-23 13:44:58 · 596 阅读 · 0 评论 -
GraphQL是什么“渣渣“?它想干掉RESTful
GraphQL简介 GraphQL是一种新的API标准,它提供了一种比REST更有效、更强大和更灵活的替代方案。 它是由Facebook开发并开源的,现在由来自世界各地的公司和个人组成的大型社区维护。 GraphQL本质上是一种基于api的查询语言,现在大多数应用程序都需要从服务器中获取数据,这些数据存储可能存储在数据库中,API的职责是提供与应用程序需求相匹配的存储数据的接口。 它是数据库无关的,而且可以在使用API的任何环境中有效使用,我们可以理解为GraphQL是基转载 2020-07-04 17:23:25 · 1208 阅读 · 0 评论 -
又肝了下微服务 API 网关“金刚”,也是蛮香的~
“摘要: 原创出处 http://www.iocoder.cn/Kong/install/ 「芋道源码」欢迎转载,保留摘要,谢谢! 1. 概述 2. 快速安装 3. Kong 控制台 4. 动态负载均衡 5. 限流限速 6. JWT 身份验证 666. 彩蛋 大家好,我是艿艿,一个很肝的小胖子~前端时间写了篇《国产微服务网关 APISIX,有点意思,直接开锤,换掉家门口的 Nginx》文章,有灰常多的留言让写写关于 Kong 的内转载 2020-06-08 14:08:48 · 1408 阅读 · 1 评论 -
如何设计 API 接口,实现统一格式返回?
前言在移动互联网,分布式、微服务盛行的今天,现在项目绝大部分都采用的微服务框架,前后端分离方式,(题外话:前后端的工作职责越来越明确,现在的前端都称之为大前端,技术栈以及生态圈都已经非常成熟;以前后端人员瞧不起前端人员,那现在后端人员要重新认识一下前端,前端已经很成体系了)。一般系统的大致整体架构图如下:需要说明的是,有些小伙伴会回复说,这个架构太简单了吧,太low了,什么网关啊...转载 2020-04-24 19:46:17 · 407 阅读 · 0 评论 -
公司的API接口被刷了,那是因为你没这样做!
作者:海向来源:cnblogs.com/haixiang/p/12012728.htmlapi限流的场景限流的需求出现在许多常见的场景中1.秒杀活动,有人使用软件恶意刷单抢货,需要限流防止机器参与活动2.某api被各式各样系统广泛调用,严重消耗网络、内存等资源,需要合理限流3.淘宝获取ip所在城市接口、微信公众号识别微信用户等开发接口,免费提供给用户时需要限流,更具有实...转载 2019-12-18 09:16:49 · 806 阅读 · 0 评论 -
高并发下的接口幂等性解决方案!
一、背景我们实际系统中有很多操作,是不管做多少次,都应该产生一样的效果或返回一样的结果。例如: 前端重复提交选中的数据,应该后台只产生对应这个数据的一个反应结果。 我们发起一笔付款请求,应该只扣用户账户一次钱,当遇到网络重发或系统bug重发,也应该只扣一次钱; 发送消息,也应该只发一次,同样的短信发给用户,用户会哭的; 创建业务订单,一次业务请求只能创建...转载 2019-11-21 10:49:01 · 404 阅读 · 0 评论 -
Spring Boot 项目的 API 接口防刷
说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考 一,技术要点:springboot的基本知识,redis基本操作,首先是写一个注解类:importjava.lang.annotation.Retention;importjava.lang.annotation.Target;importstaticjava.lang.annotation.Ele...转载 2019-10-31 09:00:45 · 516 阅读 · 0 评论 -
人人都是 API 设计者:我对 RESTful API、GraphQL、RPC API 的思考
有一段时间没怎么写文章了,今天提笔写一篇自己对 API 设计的思考。首先,为什么写这个话题呢?其一,我阅读了《阿里研究员谷朴:API 设计最佳实践的思考》一文后受益良多,前两天并转载了这篇文章也引发了广大读者的兴趣,我觉得我应该把我自己的思考整理成文与大家一起分享与碰撞。其二,我觉得我针对这个话题,可以半个小时之内搞定,争取在 1 点前关灯睡觉,哈哈。现在,我们来一起探讨 API 的设计之道...转载 2019-05-18 10:21:23 · 565 阅读 · 0 评论 -
Spring Boot 项目的 API 接口防刷
说明:使用了注解的方式进行对接口防刷的功能,非常高大上,本文章仅供参考 一,技术要点:springboot的基本知识,redis基本操作。首先是写一个注解类:importjava.lang.annotation.Retention;importjava.lang.annotation.Target;importstaticjava.lang.annotation.Ele...转载 2019-04-14 10:54:16 · 1494 阅读 · 1 评论 -
还在重复造轮子?Java开发人员必知必会的20种常用类库和API
介绍一个有经验的Java开发人员特征之一就是善于使用已有的轮子来造车。《Effective Java》的作者Joshua Bloch曾经说过:“建议使用现有的API来开发,而不是重复造轮子”。在本文中,我将分享一些Java开发人员应该熟悉的最有用的和必要的库和API。顺便说一句,这里不包括框架,如Spring和Hibernate因为他们非常有名,都有特定的功能。本文总结了日志、JSON解析...转载 2019-04-06 18:27:39 · 672 阅读 · 0 评论 -
我的编码习惯 —— API 接口定义
工作中,少不了要定义各种接口,系统集成要定义接口,前后台掉调用也要定义接口。接口定义一定程度上能反应程序员的编程功底。列举一下工作中我发现大家容易出现的问题:1. 返回格式不统一同一个接口,有时候返回数组,有时候返回单个;成功的时候返回对象,失败的时候返回错误信息字符串。工作中有个系统集成就是这样定义的接口,真是辣眼睛。这个对应代码上,返回的类型是map,json,object,都是不...转载 2019-03-04 11:15:44 · 358 阅读 · 0 评论 -
如何设计一个良好的接口?
在设计接口时,有很多因素要考虑,如接口的业务定位,接口的安全性,接口的可扩展性、接口的稳定性、接口的跨域性、接口的协议规则、接口的路径规则、接口单一原则、接口过滤和接口组合等诸多因素,本篇文章将简要分析这些因素。一 规范性建议1.职责原则在设计接口时,必须明确接口的职责,即接口类型,接口应解决什么业务问题等2.单一性原则在明确接口职责的条件下,尽量做到接口单一,即一个接口只...转载 2019-03-01 08:27:42 · 244 阅读 · 0 评论 -
为什么RESTful很糟糕?
周六晚上,RESTful发明人罗伊悄悄来到了咖啡馆,他想看看自己引以为傲的RESTful到底用得怎么样。 (RESTful的故事参见《RPC发展简史》)靠着门的那张桌子有一帮人,他们居然还在讨论老掉牙的Java RMI,似乎遇到了什么技术难题。 看来无论是什么技术,都会有非常古老的遗留系统需要维护,真是苦逼的程序员啊, 罗伊感慨。 这边的一群人在讨论Google的Protobuf ...转载 2018-12-24 21:45:50 · 978 阅读 · 3 评论 -
有点长的 Java API 设计清单
在设计Java API的时候总是有很多不同的规范和考量。与任何复杂的事物一样,这项工作往往就是在考验我们思考的缜密程度。就像飞行员起飞前的检查清单,这张清单将帮助软件设计者在设计Java API的过程中回忆起那些明确的或者不明确的规范。本文也可以看作为“API设计指南”这篇文章的附录。我们还准备了一些前后比对的例子来展示这个列表如何帮助你理清设计需求,找出错误,识别糟糕的设计实践以及如何寻找改...转载 2018-12-16 21:11:36 · 357 阅读 · 0 评论 -
跟着 Github 学习 Restful HTTP API 的优雅设计
近几年提供 HTTP API 服务的公司越来越多,许多公司都把 API 作为产品重要的一部分,作为服务提供出去。而微服务的兴起,也让企业内部开始重视和频繁使用 HTTP API 。好的 HTTP API设计容易理解、符合 RFC 标准、提供使用者便利的功能,其中经常被拿来作为教科书典范的当属 Github API。这篇文章就通过 Github API 总结了一些非常好的设计原则,可以作为以后要编...转载 2018-12-21 10:27:46 · 2688 阅读 · 0 评论 -
RESTful Web 服务 - 资源
什么是资源?REST 架构把所有内容都视为资源。这些资源可以是文本文件,html 页面,图像,视频或者动态业务数据。REST 服务器只提供对资源的访问,REST 客户端访问和修改资源。这里每个资源都通过 URIs/ 全局 IDs 标识。REST 使用不同的表示形式表示资源,比如文本,JSON,XML。XML 和 JSON 是最流行的资源表示形式。资源表示形式REST 中的资源类似于面向...转载 2017-03-09 11:11:29 · 492 阅读 · 0 评论 -
RESTful Web 服务 - 消息
RESTful Web 服务使用 HTTP 协议作为客户端和服务器之间的通信媒介。客户端发送一个 HTTP 请求形式的消息,然后服务器按照 HTTP 响应形式的响应。这种技术被称为消息传递。这些消息包含消息数据和元数据,比如消息本身相关的信息。我们来看看 HTTP 1.1 中的 HTTP 请求和 HTTP 消息响应。HTTP 请求一个 HTTP 请求有五个主要部分:动作(Verb)...转载 2017-03-09 11:13:47 · 947 阅读 · 0 评论 -
RESTful Web 服务 - 寻址
寻址指的是定位存储在服务器上的一个或多个资源。类似于定位某个人的邮寄地址。REST 架构中的每个资源都通过它的 URI(统一资源标示符)标识。URI 格式如下:<protocol>://<service-name>/<ResourceType>/<ResourceID>URI 的目的是定位托管 Web 服务的服务器上的资源。请求的另一个...转载 2017-03-09 11:16:17 · 879 阅读 · 0 评论 -
RESTful Web 服务 - 方法
正如目前为止我们所讨论的,RESTful Web 服务大量使用 HTTP 动词确定要对指定资源进行的操作。下面的表格演示了常用 HTTP 动词的例子。编号 HTTP 方法,URI 和操作 1 GET http://localhost:8080/UserManagement/rest/UserService/users 获取用户列表 (只读) 2 ...转载 2017-03-09 11:19:28 · 587 阅读 · 0 评论 -
RESTful Web 服务 - 无状态
根据 REST 架构,一个 RESTful Web 服务不应该在服务器上保持客户端状态。这种约束被称为无状态。客户端的职责是传递其上下文给服务器,然后服务器存储这个上下文以处理客户端的请求。比如,由服务器维护的会话是通过客户端传递的会话标示符识别的。RESTful Web 服务应该遵守这一约束。我们已经在 RESTful Web 服务 - 方法 教程中见过,Web 服务方法不会存储调用它们转载 2017-03-09 11:21:07 · 703 阅读 · 0 评论 -
RESTful Web 服务 - 缓存
缓存是指在客户端存储服务器响应,以便客户端不需要一次又一次的请求服务器上相同的资源。服务器响应应该有关于如何进行缓存的信息,以便客户端缓存一段时间内的响应或者永远不缓存服务器响应。下面是可以用来配置客户端缓存的服务器响应头:编号 头信息 & 描述 1 Date 创建资源的日期和时间。 2 Last Modified 最后修改资源的日期和时间...转载 2017-03-09 11:23:25 · 1520 阅读 · 0 评论 -
RESTful Web 服务 - 安全性
因为 RESTful Web 服务使用 HTTP URLs 路径,因此以保护网站同样的方式维护 RESTful Web 服务是非常重要的。以下是设计 RESTful Web 服务时要遵循的最佳实践。验证 - 验证服务器上的所有输入。保护服务器免受 SQL 或者 NoSQL 注入攻击。 基于会话的认证 - 请求一个 Web 服务方法时使用基于会话的认证对用户进行身份验证。 URL 不要有敏感...转载 2017-03-09 11:24:55 · 484 阅读 · 0 评论 -
RESTful Web 服务 - Java (JAX-RS)
JAX-RS 表示用于 RESTful Web 服务的 Java API。JAX-RS 是一种基于 Java 的编程语言 API 以及为创建 RESTful Web 服务提供支持的规范。2.0 版本发布于 2013 年 5 月 24 日。从 Java SE 5 开始大量使用 JAX-RS 注释以简化基于 Java 的 Web 服务的创建和部署。它还为创建 RESTful Web 服务客户端提供支持...转载 2017-03-09 11:28:01 · 585 阅读 · 0 评论 -
微服务RESTful 接口设计规范
1、RESTful发展背景及简介网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现"APIFirst"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。REST(Representati...原创 2017-06-29 09:51:28 · 38833 阅读 · 0 评论 -
RESTful API 设计指南
网络应用程序,分为前端和后端两个部分。当前的发展趋势,就是前端设备层出不穷(手机、平板、桌面电脑、其他专用设备......)。因此,必须有一种统一的机制,方便不同的前端设备与后端进行通信。这导致API构架的流行,甚至出现"API First"的设计思想。RESTful API是目前比较成熟的一套互联网应用程序的API设计理论。我以前写过一篇《理解RESTful架构》,探讨如何理解这个概念。...转载 2016-07-01 14:22:53 · 317 阅读 · 0 评论 -
理解RESTful架构
越来越多的人开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件"采用客户端/服务器模式,建立在分布式体系上,通过互联网通信,具有高延时(high latency)、高并发等特点。网站开发,完全可以采用软件开发的模式。但是传统上,软件和网络是两个不同的领域,很少有交集;软件开发主要针对单机环境,网络则主要研究系统之间的通信。互联网的兴起,使得这两个领域开始融合,现在我们必须考虑,...转载 2016-06-29 13:44:36 · 265 阅读 · 0 评论 -
【REST】REST和JAX-RS相关知识介绍
RESTREpresentational State Transfer;代表性状态传输、具象状态传输REST定义了应该如何正确地使用Web标准,例如HTTP和URI。REST并非标准,而是一种开发 Web 应用的架构风格,可以将其理解为一种设计模式。 REST关键原则1、为所有“事物”定义ID含义:在Web中,代表ID的统一概念是:URI。URI构成了一个全局命名空间,...转载 2017-04-10 14:22:11 · 829 阅读 · 0 评论 -
springboot整合flowable
一 官方提供的war包从flowable.org网站下载.zip文件后,可以在wars目录下找到REST应用。要运行这个WAR文件,需要一个servlet容器,例如Tomcat、Jetty等。使用Tomcat的步骤如下: 下载并解压缩最新的Tomcat zip文件(在Tomcat网站中选择’Core’发行版)。 将flowable-rest.war文件从解压的Flowabl...原创 2017-12-28 14:12:00 · 16181 阅读 · 9 评论 -
为什么前后端分离了,你比从前更痛苦?
你有没有遇到过: 前端代码刚写完,后端的接口又变了。 接口文档永远都是不对的。 测试工作永远只能临近上线才能开始。 为什么前后端分离了,你比从前更痛苦?前后端分离早已经不是新闻,当真正分离之后确遇到了更多问题。要想解决现在的痛,就要知道痛的原因:为什么接口会频繁变动?设计之初没有想好。 这需要提高需求的理解能力和接口设计能力。变动的成本较低。...转载 2018-11-08 09:19:17 · 434 阅读 · 0 评论 -
如何设计优雅的API
导读:互联网的发展、Web 应用的整合、移动端的繁荣都离不开 Web API 这一幕后英雄的鼎力相助,本文就如何优雅的设计 Web API 从作者自我经验方面做出介绍,并通过举例对它们进行深入剖析, 最后总结出适用于 Web API 各个方面的普遍性规律。一、设计优美的 Web API 设计优美的 Web API 的重要性 本文的主题是讨论如何设计优美的 Web API 。这里“优...转载 2018-12-01 21:12:38 · 1051 阅读 · 0 评论 -
RESTful Web 服务 - 介绍
什么是 REST?REST 是 REpresentational State Transfer 的缩写。REST 是一种基于 Web 标准的软件架构,它使用 HTTP 协议处理数据通信。它以资源为中心,其中每个组成部分都是一个资源,并且资源通过使用 HTTP 标准方法的公共接口访问。REST 由 Roy Fielding 在 2000 年首次提出。在 REST 架构中,一个 REST 服务...转载 2017-03-09 10:55:54 · 463 阅读 · 0 评论