小编Jon*_*han的帖子

使用Spring实现REST Api实现

编写RESTFul api应用程序的最佳实践之一是添加版本控制.例如:

http://my-server/api/v1/getData
http://my-server/api/v2/getData
Run Code Online (Sandbox Code Playgroud)

我们的应用程序使用Spring框架公开REST api.我们将类标记为Controller,使用RequestMapping注释将URL映射到函数,并添加一些转换为json对象的对象.

例如:

@RequestMapping(method = RequestMethod.POST, value = "/api/v1/getData")
public @ResponseBody ResponseDataDTO getData(@RequestBody OperationsDetailsTDO details) {...}
Run Code Online (Sandbox Code Playgroud)

现在,我们想要提供API的第二个版本.大约2/3的功能保持不变,1/3的功能正在发生变化.更改在逻辑和JSON对象中.

我想知道如何设计代码.我认为这种代码很难管理:

@RequestMapping(method = RequestMethod.POST, value = "/api/{version-var}/getData")
public @ResponseBody ResponseDataDTO createReleaseFromTemplate(@PathVariable("version-var") Integer version, @RequestBody OperationsDetailsTDO details) {
if (version == 1)
{
   doForVersion1();
}
else if (version == 2)
{
   doForVersion2();
}

}
Run Code Online (Sandbox Code Playgroud)

它很难管理,因为在每个函数中都会有不同的分支.只是为了演示这个问题,如果我有一个生成文档的自动工具 - 它将无法理解什么是API.

其次,我想知道如何处理绑定到JSON对象的类.我是否需要复制所有这些类,以进行微小的更改?

谢谢.

java spring spring-mvc

6
推荐指数
1
解决办法
2018
查看次数

Jetbrains比较工具作为独立工具

我想使用Jetbrains提供的diff工具(IntelliJ,TeamCity)作为独立工具.

那可能吗?我在哪里可以下载?

我拥有IntelliJTeamCity的许可.

intellij-idea

6
推荐指数
1
解决办法
1409
查看次数

Google 云存储:更改存储分区区域

我正在使用谷歌云存储。我在美国创建了一个存储桶,现在由于 GDPR,我需要将它移到欧盟。有什么办法可以改变桶的位置吗?

如果没有,如果删除存储桶并创建一个新存储桶 - 我可以给它起相同的名称吗?(因为它是全球唯一的)。

google-cloud-storage

2
推荐指数
1
解决办法
1108
查看次数