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

时间:2014-10-27 11:24:25

标签: apiblueprint

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

## User [/users/{id}]

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

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

### Disable a User [PATCH]
    ....

此处,Disable a UserUpdate a User都指向同一个网址,这不是我想要的。我希望这些网址分别生成网址/users/{id}/users/{id}/disable

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

## /users/{id}

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

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

## /users/{id}/disable

    ### Disable a User [PATCH]
        ...

虽然我可以使用这种方法,但我更喜欢使用第一种方法,因为大多数蓝图工具都会使用第一种方法更清洁。

有没有办法使用第一种方法进行自定义操作,或者其他人是否有更清洁的方式来实现同类事物

1 个答案:

答案 0 :(得分:1)

在此示例中,因为有两个不同的URL,实际上最终会有两个不同的资源。一个资源是用户资源,而另一个资源是禁用用户资源。要在API蓝图中组织这些资源,您可以将这些资源与Resource Group一起分组。

# Group User Resources

## User [/users/{id}]

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

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

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

### Disable User [PATCH]
    ...

这允许您对单独的URL进行单独的操作,同时将它们绑定在文档中。