欢迎,这是我在Stack上的第一个问题,所以大家好。
我是Spring Boot和REST API的新手,我必须创建具有良好项目模板(包,类,接口)和良好项目模式的项目,但我从未见过任何REST项目SpringBoot。在这种情况下,我想请您描述REST Api的一些良好习惯,规则,模式和示例,以便从中获取一些数据并测试一些使用情况。我很感激github或教程链接的源代码。 最后的简短问题:
1)当请求没有结果时,api的行为应该如何?标题状态或其他内容中的空页或错误?
2)当请求错误(不存在)时,api的行为应该怎样?
感谢您的回复和问候,
卡米尔答案 0 :(得分:0)
Spring只是为Spring提供REST方式。关于它没有任何哲学上的REST。它不是专为REST设计的,而是专为支持良好的REST设计而设计的。
一般来说,好的REST设计需要考虑的一些事情是:
REST的3个级别:
Richardson Maturity Model
Three Levels of the REST Maturity Model
附带一些代码示例:
ETags for REST with Spring
Why would ETags set to a MUST requirement if you already have the resource?
至于返回空结果,那是错误吗?找不到东西是不寻常的?如果没有,请不要引发异常并返回错误。你返回的内容取决于你想如何处理搜索没有返回的异常情况。您可以使用一些简单的JSON解释返回404,但404不需要解释。
请求不存在的端点很明显,请求甚至不会找到您,因为服务器将返回404。
“错误”的问题通常取决于REST所代表的域。找不到任何东西的搜索不是错误。当域没有“名称”字段时,在“名称”字段上搜索是客户端错误和异常。
因此基本上有3个方面需要研究。