Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apiblueprint API蓝图中的自定义操作名称_Apiblueprint - Fatal编程技术网

Apiblueprint API蓝图中的自定义操作名称

Apiblueprint API蓝图中的自定义操作名称,apiblueprint,Apiblueprint,我正试图编写一个API,并努力找出一种向资源添加自定义操作的好方法。例如,在我的用户资源中,我希望启用操作和禁用操作,但在常规蓝图分组中,我无法将这些操作添加到组下: ## User [/users/{id}] ### Update a User [PATCH] ... ### Delete a User [DELETE] ... ### Disable a User [PATCH] .... 在这里,禁用用户和更新用户都指向同一个URL,这不是我想要的。我希望它

我正试图编写一个API,并努力找出一种向资源添加自定义操作的好方法。例如,在我的用户资源中,我希望启用操作
禁用操作
,但在常规蓝图分组中,我无法将这些操作添加到组下:

## User [/users/{id}]

### Update a User [PATCH]
    ...

### Delete a User [DELETE]
    ...

### Disable a User [PATCH]
    ....
在这里,
禁用用户
更新用户
都指向同一个URL,这不是我想要的。我希望它们分别生成URL
/users/{id}
/users/{id}/disable

通过查看其他API源,其他人在未使用命名资源的情况下完成了此操作,这将提供:

## /users/{id}

    ### Update a User [PATCH]
        ...

    ### Delete a User [DELETE]
        ...

## /users/{id}/disable

    ### Disable a User [PATCH]
        ...
虽然我可以使用这种方法,但我更愿意使用第一种方法,因为它在大多数蓝图工具渲染时更干净


是否有一种方法可以使用第一种方法进行自定义操作,或者其他人是否有一种更干净的方法来实现相同的操作?在本例中,由于有两个不同的URL,您实际上会得到两个不同的资源。一个资源是用户资源,而另一个是禁用用户资源。要在API蓝图中组织这些资源,您可以使用


这使您可以对不同的URL执行单独的操作,同时在文档中将它们绑定在一起。

但是,在同一资源中没有办法拥有不同的URL吗?我已经尝试过这种方法(事实上现在就有了),但我并不真正想要一个禁用和启用资源作为单独的东西,因为我必须为每个资源复制模型当它完全是sameIn API蓝图时,一个资源直接绑定到一个URL,所以拥有不同的URL就是拥有不同的资源。我认为这意味着在你的例子中,你基本上有两种资源。如果您想重用您的模型,我相信您可以做到这一点。我提出了一个要点来说明如何为用户重用模型。看起来接近我能得到的,至少这让我可以重新使用模型,这是我主要关心的。谢谢:)
# Group User Resources

## User [/users/{id}]

### Update a User [PATCH]
    ...

### Delete a User [DELETE]
    ...

## Disable User [/users/{id}/disable]

### Disable User [PATCH]
    ...