rest - 发送特定于应用程序的消息

标签 rest

我们的业务逻辑发生了变化,之前我们使用其中一个 API 返回列表,例如。员工名单。最近我们引入了授权检查,以查看特定用户是否有权查看特定员工。

如果说有 10 个员工应该通过方法 GET 返回,由于缺少权限,只返回 5 个。在这种情况下,请求本身是成功的。我目前不确定如何将有 5 名员工因缺少许可而被过滤掉的信息传回给客户。

  • 这应该映射到 HTTP 状态代码吗?如果是,哪个状态代码适合这个?或者这根本不是错误?
  • 在这种情况下,最好的方法是什么?
  • 最佳答案

    状态代码本身不足以指示部分响应。状态代码 206 听起来很接近名称,但在客户端根据 header 专门请求部分数据集时使用。

    使用 200。毕竟请求已成功完成,较小数据集的原因是您的 API 专有的,因此响应中的额外元数据指示消息可能就足够了。

    假设JSON响应:

    {
        "data": [ ... ],
        "messages": [
            "Only some data was returned due to permissions."
        ]
    }
    

    如果您有很多消费者并且担心向后兼容性,您可能还想提供特定于供应商的版本化 JSON 媒体类型:
    "Content-Type": "application/vnd.myorg-v2+json"
    

    关于rest - 发送特定于应用程序的消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31208167/

    相关文章:

    python - 在单个 POST 数组中使用 Django Rest Framework 上传多个图像?

    oracle - 如何在没有可用行选择器的情况下为 APEX 21.1 REST 数据源设置数据配置文件

    rest - 有效请求但空数据的正确 REST 响应代码是什么?

    asp.net - 用户在我的网站上点击确认后如何确认 Paypal express 付款?

    c# - 当属性名称包含空格和保留字时将 JSON 映射到 C# 类

    rest - 如何为 Restful WS 创建 WSDL

    java - 将 Spring 3、ReST 和 XML 与 Joda 日期类型一起使用时返回数据

    java - 在没有 Entity Framework 的情况下构建 OData API

    java - 从 WSDL 生成 RESTful 代理

    java - 通过 AJAX POST 传递给 POJO 时,JSON 对象传递部分 NULL 值?