我使用ControllerLinkBuilder创建指向Spring MVC控制器列表的链接索引。
例如:
ResourceSupport resource = new ResourceSupport(); resource.add(linkTo(methodOn(ReactorController.class).sendmail(EventBody))withRel(REACTOR_REL));
这会产生:
“reactor”:[ { “href”:“http://localhost:12345/main/reactor/sendmail” } ]
在示例中,它是sendmail的POST! 记录的方法是什么? POST 是预期的?
答案 0 :(得分:1)
当您提供链接时,您指向的是可由API用户操作的资源,而不是他们希望知道如何使用的功能。
https://spring.io/understanding/HATEOAS
最后一段适用于您的问题。
根据Richardson成熟度模型,HATEOAS被认为是REST的最终级别。这意味着每个链接都被假定为实现GET,POST,PUT和DELETE(或子集)的标准REST动词。因此,提供如上所示的链接为客户提供了导航服务所需的信息。
所以在你的情况下,如果没有意义实现任何方法但是发布,你可以让它们发布到/mail
,你可以创建一个单独的文档(如Swagger,Spring REST Docs)让他们知道你的实体格式。