我正在考虑如何在我的REST API中设计(可能是新的)端点。
目前,我有两个端点:
GET /contracts
GET /contracts/{id}?accessCode={some code to access the contract}
第一个返回所有合同的合同是受保护的,因此只有具有有效JWT令牌的用户才能访问它。它返回该用户的所有合同(该用户的ID在令牌中)。
要获得一份特定合同的第二份合同并不安全,每个人都可以称之为。
accessCode
,并且如果它与DB中存储的代码(对于特定合同)匹配,则将合同退回现在我有一个要求公开一些端点(或修改现有端点)的要求,该端点将允许用户检查是否可以为某些现有合同创建修订(或附录)。从前端的角度来看,用户必须知道合同ID和该合同上有关当事方的信息(为简单起见,我们假设名称和姓氏)。如果用户知道此信息,则可以创建合同的修订,因此前端需要有关合同的信息(基本上是我的端点GET /contracts/{id}
返回的信息。)
我不确定如何设计这种端点,以便用户可以验证是否允许他创建修订。基本上,我需要一个可以接受合同编号以及合同上当事人的名字和姓氏的端点。
我正在考虑修改现有端点GET /contracts
,以使其可以接受?contractNumber={id}&firstName={firstName}&lastName={lastName}
之类的查询参数。
另一种方法可能是创建一个新的“验证”端点,例如GET /permission/contract/{id}?lastName={lastName}&firstName={firstName}
,如果姓和名匹配,它将返回合同详细信息。
建议的解决方案之一是更好的还是更多的RESTfull?还是已经有一些不同的已知方法,如何处理呢?