GraphQL-为API而生的查询语言

概述

GraphQL是Facebook开源的API查询语言,类似于数据库中的SQL。作为比较,RESTful API依赖于后端隐式的被动的数据约定,GraphQL更加显式,在获取数据和更新数据时更加主动,所见即所得。
Untitled.gif
详见官网:http://graphql.cn/

RESTful-基于SpringMVC实现优雅的API响应结构设计

一个规范、易懂和优雅,以及结构清晰且易于理解的API响应结构,完全可以省去许多无意义的沟通和文档。

预览

操作成功:

1
{"succeed": true,"timestamp": 1525582485337}

操作成功:返回数据

1
2
3
4
5
6
7
8
9
10
{
"succeed": true,
"result": {
"users": [
{"id": 1, "name": "name1"},
{"id": 2, "name": "name2"}
]
},
"timestamp": 1525582485337
}

操作失败:

1
2
3
4
5
6
7
8
9
{
"succeed": false,
"error": {
"error_code": 5002,
"error_reason": "illegal_argument_error",
"error_description": "The String argument[1] must have length; it must not be null or empty"
},
"timestamp": 1525582485337
}

开放Spring Cloud Eureka API

一般来说,Eureka 默认提供了一套 UI 界面,但在大多数情况下,由于 UI 风格问题并不适合直接嵌入到业务系统中使用;

本文通过扩展 Eureka 项目,实现相关的自定义接口,以便业务系统集成调用;

1. Eureka Project;

1
2
3
4
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
1
2
3
4
5
6
7
8
@EnableEurekaServer
@SpringBootApplication(scanBasePackages = "com.fastjee")
public class FastjeeEurekaApplication {

public static void main(String[] args) {
FastjeeApplication.run(FastjeeEurekaApplication.class, args);
}
}

2. RESTful API

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×