开发者社区> 问答> 正文

如何在API端点中接受可为空的Long?

本质上,我有以下用例:我有一个Entity,并且需要更新其字段之一。本场是Long,它CANnull(基本上,如果我删除了我需要的实体null进行的那场)。我们将此字段称为relativeId

我的React资源如下所示:

updateEntityField(entityId, relativeId) {
  return req({
    method: 'PUT',
    url: `stuff/entities/${entityId}/relative`,
    data: relativeId,
  });
},

我的Java资源如下所示:

@ApiOperation("Updates an entity's relative id")
@PUT
@Path("/{id}/relative")
@Consumes(MediaType.APPLICATION_JSON)
public ApiResult<Arrest> updateRelativeId(
  @ApiParam(value = "Entity id", required = true) @PathParam("id") long entityId,
  @ApiParam(value = "relative id", required = true) @Nullable Long relativeId)
    {
        ...
    }

即使不在FE上,relativeId 始终 为。我以前从未处理过传递不是具有多个字段的对象的数据,因此我不确定该怎么做。理想情况下,the只能是路径参数,但是很难在其中传递null值。而且我想使资源保持简单,因此我在尝试避免故意传递a ,然后在BE中接受它时使之成为现实。null null relativeId -1 null

问题来源:Stack Overflow

展开
收起
montos 2020-03-21 22:26:48 930 0
1 条回答
写回答
取消 提交回答
  • 您可以使用@QueryParam批注从请求查询参数中读取此可选值(也建议不要更新Swagger ApiParam):

    @ApiParam(value = "relative id", required = false) @QueryParam @Nullable Long relativeId)
    

    然后更新React代码以将其作为查询参数传递:

    updateEntityField(entityId, relativeId) {
        return req({
            method: 'PUT',
            url: `stuff/entities/${entityId}/relative?relativeId=${relativeId}`
        });
    },
    

    回答来源:Stack Overflow

    2020-03-21 22:27:35
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Boot2.0实战Redis分布式缓存 立即下载
CUDA MATH API 立即下载
API PLAYBOOK 立即下载