Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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
如何使用jsonapi格式发送无关数据_Json_Elixir_Phoenix Framework_Json Api - Fatal编程技术网

如何使用jsonapi格式发送无关数据

如何使用jsonapi格式发送无关数据,json,elixir,phoenix-framework,json-api,Json,Elixir,Phoenix Framework,Json Api,我正在尝试按照jsonapi规范构建一个api[.我想从两个不同的表发送不相关的数据。我应该如何发送。我可以按如下方式发送。根据规范,这是正确的方法吗?理想情况下,我们应该为此目的使用单独的端点,但由于涉及额外的n/w请求,我不想创建单独的端点 { data: [ { type: "user", atrributes: { ... } }, { type: "company", attrib

我正在尝试按照jsonapi规范构建一个api[.我想从两个不同的表发送不相关的数据。我应该如何发送。我可以按如下方式发送。根据规范,这是正确的方法吗?理想情况下,我们应该为此目的使用单独的端点,但由于涉及额外的n/w请求,我不想创建单独的端点

{
  data: [
    {
      type: "user",
      atrributes: {
        ...
      } 
    },
    {
      type: "company",
      attributes: {
        ...
      }
    }
  ]
 }
此外,目前我正在使用ja_serializer[序列化json。是否有一个好方法可以将多个表中的无关数据一起序列化 严格来说,作为JSON-API,您不能这样做

长答覆:

不要让生活变得不必要的复杂 问问你自己,避免额外请求的好处是否值得额外的代码复杂性。如果你在HTTP/2上运行服务器,那么额外的网络开销将是最小的

在许多情况下,如果你在未来保持简单和独立,你会发现回报——当你想做不同的请求,或者只是将公司与其他类型或资源结合起来时

1) 包装多个JSON-API响应 但是,如果您真的想要JSON-API和单个请求,那么您可以做的是将2个JSON-API响应封装到一个请求中

{
  "responses": [{
     "name": "companies",
     "jsonapi": {"data": ... }
  }, {
     "name": "users",
     "jsonapi": {"data": ... }
  }]
}
然后在客户机中,您可以将它们分解,并在标准JSON-API库中作为单独的资源使用

2) 尝试从JSON-API中找到常见的“父级”并使用Relationship 你说这些资源是不相关的,但是如果你想同时请求它们,它们必须有一些共同点。也许是像“组织”(你)这样有很多公司和用户的东西

3) 其他选择 JSON-API旨在标准化对象到REST的映射。如果您不需要它,JSON-API就不适合您的用途


也许像GraphQL这样的东西更适合您。或者选择您的专有格式。

为什么根据规范不可能呢?
数据
键可以是一个资源对象数组,唯一的要求是每个对象都有
id
类型