2016-05-17 55 views
2

因此,传统的API资源允许您将GETPUT,PATCH,DELETE等资源。执行动作的API路由

/api/v1/user/$id 

但是,执行某个操作并返回有关该操作结果的某个响应的路由的技术术语是什么?

/api/v1/flushcache 
+1

刷新缓存不等于DELETE/api/v1/cache? –

+0

@CássioMazzochiMolin我以为你需要能够做其他的http方法,因为它是一个资源。从你的评论我假设你不需要做所有的方法成为一个适当的资源呢? – myol

+0

从语义上讲,'DELETE/api/v1/cache'意味着你实际上*删除了缓存,因为它不再存在,关闭或者完全删除。冲洗是一种不同的情况。 –

回答

2

一种方法是只是有一个cache资源:

/api/v1/cache 

这将返回一些缓存的状态,例如application/vnd.company.cachestate+json

{ 
    "state": "active", 
    "objectCount": 123 
} 

然后,你可以PUT相同的表示:

{ 
    "state": "flushed" 
} 

哪位能返回:

{ 
    "state": "active", 
    "objectCount": 0 
} 

的一点是,你必须先制定问题在现有的术语。所使用的术语是总是

  • 资源(你所说的“路线”):由资源实际使用的消息格式:它有一些业务语义
  • 表示的实体。资源可能支持多种表示形式!
  • MIME类型:一个代表(或多个的)

做的形式化描述,又,通常没有的资源,“不”的东西,更像是,资源是一些业务实体,而标准操作(GET,PUT,POST,DELETE等)是映射到对该实体的一些操作。

+0

这不是回答这个问题。他不想知道RESTful方法来做到这一点,他想知道非RESTful方式的*名称*。 –

+0

够公平的,我澄清了这一点。 –