我正在开发一个简单的问答服务(泽西JAX-RS(。通过这项服务,到目前为止,我已经提出了以下资源(可能会增加(。
- GET|发布-------------/问题
- GET|PUT|删除 --/问题/{id}
- GET|发布------------/questions/{id}/answers
- GET|PUT|删除 -/questions/{questionId}/answers/{answerId}
这是我的资源类,可以满足上述所有路径。
@Path("/questions")
public class QuestionResource {
@Inject
private QuestionService questionService;
@GET
...<list of questions>
@POST
...<a new question>
@Path("{id}")
...<a question>
@PUT
@Path("{id}")
...<update a question>
@DELETE
@Path("{id}")
...<delete a question>
@GET
@Path("{id}/answers")
...<list of answers>
@POST
@Path("{id}/answers")
...<a new answer for a question>
@GET
@Path("{questionId}/answers/{answerId}")
...<an answer for a question>
@PUT
@Path("{questionId}/answers/{answerId}")
...<update an answer for a question>
@DELETE
@Path("{questionId}/answers/{answerId}")
...<delete an answer for a question>
}
这具有相应的服务和持久性层 - QuestionService/QuestionServiceImpl 和 QuestionRepository/QuestionRepositoryImpl。但是,对于我应该使用哪种服务和存储库来处理最后五个请求的方法,我有点困惑。我应该将它们也放在问题服务和存储库中还是放在另一个类 - 答案服务和存储库中?
由于答案和问题的多对一关系,我正在考虑后者(JPQL 命名查询 - 选择一个 FROM 回答一个 WHERE a.question.id = :questionId(。这意味着除了QuestionService之外,我还会在我的QuestionResource中使用AnswerService。那会好吗。
请开导我。谢谢。
-
在 restful API 中,一切都是资源,当涉及到 您认为是主要资源和其他资源的关系,或者在 另一个词是资源和子资源。
-
在您的情况下,答案是子资源,因为您的答案资源不能成为没有问题或 另一个词,你的一个资源依赖于另一个 一。你的答案绝对取决于问题