微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用域对象参数调用rest api

如何解决如何使用域对象参数调用rest api

我写了一个服务操作看起来像

@DomainService(
        nature = NatureOfService.VIEW_REST_ONLY,objectType = "rest.oneservice"
)
onepackage.Oneservice{
   @Action(semantics = SemanticsOf.SAFE)
   public List<Data> findDataByPerson(Person person,LocalDate start,LocalDate end){
   ...
   }
}

在 SwaggerUI 中暴露为

get /services/rest.oneservice/actions/findDataByPerson/invoke  

我找不到如何将域对象作为参数发送到rest api;

我该怎么做?

谢谢。

解决方法

对域对象的引用使用以下格式:

{
  "person": {
    "value": {
      "href": "http://~/objects/person.Person/123"
    }
  }
}

其中 person.Person 是引用类型的对象类型(根据 @DomainObject(objectType=...))。

如果使用 PUT (@Action(semantics=IDEMPOTENT)) 或 POST (@Action(semantics=NON_IDEMPOTENT)) 调用操作,则上述内容将是正文。

如果使用 GET (@Action(semantics=SAFE)) 调用,那么该 json 将需要进行 URL 编码和附加。

规范第 2.10 节中的更多详细信息,也可在线获取here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。