【发布时间】:2021-01-25 22:04:24
【问题描述】:
我已经创建了一个 Feign 客户端 StorageClient,如下所示:
@Headers(HttpHeaders.ACCEPT + ": " + MediaType.APPLICATION_JSON_UTF8_VALUE)
interface StorageApi {
@RequestLine("GET /api/v1/files/{fileId}")
fun getFileMeta(@Param("fileId") fileId: Long): Response
}
@Service
class StorageClient(private val storageApi: StorageApi) {
fun getFile(fileId: Long): StorageFile = storageApi.getFileMeta(fileId)
}
除了StorageClient客户端,getFileMeta()方法(接口StorageApi)也用于检查状态(方法isFileExists()):
fun isFileExists(fileId: Long): Boolean = storageApi.getFileMeta(fileId).status() != 404
由于这个原因,我不能明确地写:
@RequestLine("GET /api/v1/files/{fileId}")
fun getFileMeta(@Param("fileId") fileId: Long): StorageFile
如何解码响应正文,以便可以从 getFile()(StorageClient 类)方法返回 StorageFile 类型的对象?或者也许有一些方法可以同时处理收到的Response 的status 及其body?
【问题讨论】:
标签: spring-boot rest kotlin response feign