Rest 如何在swagger中为可变路径参数和特定路径参数定义两个不同的端点

Rest 如何在swagger中为可变路径参数和特定路径参数定义两个不同的端点,rest,api,swagger,Rest,Api,Swagger,我想定义两个rest端点: 在/a/{id}/c上发布 发布于/a/b/c 这里是一个特定的关键字。 我之所以需要单独的端点,是因为两者的有效负载不同 问题是,当我在/a/b/c上发布帖子时,请求将转到第一个,由于有效负载不匹配,请求失败 这能大摇大摆地做到吗? 有更好的方法吗?根据您的评论,您可以创建两个新的POST端点,并稍微分离它们的功能。分离端点本身的功能也使其更易于阅读和使用,因为它可以立即说明端点的用途。无论是针对单个用户,还是针对整批用户,但仍执行相同的操作。例如: 向特定用户添加

我想定义两个rest端点:

  • 在/a/{id}/c上发布
  • 发布于/a/b/c
  • 这里是一个特定的关键字。 我之所以需要单独的端点,是因为两者的有效负载不同

    问题是,当我在/a/b/c上发布帖子时,请求将转到第一个,由于有效负载不匹配,请求失败

    这能大摇大摆地做到吗?
    有更好的方法吗?

    根据您的评论,您可以创建两个新的POST端点,并稍微分离它们的功能。分离端点本身的功能也使其更易于阅读和使用,因为它可以立即说明端点的用途。无论是针对单个用户,还是针对整批用户,但仍执行相同的操作。例如:

    向特定用户添加角色

    POST /system/roles/user/{userid} 
    
    一次向一批用户添加角色

    POST /system/roles/batch
    

    这对你有用吗?

    a/{id}/c与/a/b/c有什么不同?最好以不同的方式设置端点,这样它们就不会overlap@Lesleyvdp/system/{userId}/roles向特定用户添加角色/system/batch/roles向多个用户添加角色什么应该是不同的端点?我已经发布了一个答案,并做了一些澄清。您使用的是什么服务器框架?看起来它不是完全兼容的,因为它声明“在匹配URL时,具体(非模板化)路径将在其模板化的对应路径之前匹配”。您可以发布进行路径匹配的服务器代码吗?这看起来很奇怪,因为用户是系统的一部分,角色属于特定用户,并且端点应该位于该行/系统/角色/用户这表示角色属于系统,角色有用户。我不确定您的设置是什么样子,但这听起来很合理。您可以并且像您所说的那样,根据项目的设置正确地构造它/system/user/roles/batch和/system/user/{userid}/roles也是一个选项。