Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.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
Ruby on rails JSONAPI是用JSONAPI资源响应非资源数据(如访问令牌)的最佳方式_Ruby On Rails_Ruby On Rails 4_Json Api_Jsonapi Resources - Fatal编程技术网

Ruby on rails JSONAPI是用JSONAPI资源响应非资源数据(如访问令牌)的最佳方式

Ruby on rails JSONAPI是用JSONAPI资源响应非资源数据(如访问令牌)的最佳方式,ruby-on-rails,ruby-on-rails-4,json-api,jsonapi-resources,Ruby On Rails,Ruby On Rails 4,Json Api,Jsonapi Resources,我正在实现这个API,我做的第一件事就是使用访问令牌登录。我正在使用jsonapi资源宝石 我现在有两个问题。我希望在成功的情况下返回用户和生成的访问令牌,否则返回失败消息 现在我有两个问题: 1-第一个问题是,如何返回此类数据(用户记录加上访问令牌)。阅读JSONAPI规范,我相信一个复合文档将是一个不错的选择,但是如何使用这个gem呢 2-使用此gem,我如何响应非CRUD路由(如登录)?我必须在控制器里做些什么吗?在这种情况下,如何处理资源对象?没有非资源数据这样的东西。您可以根据资源对几

我正在实现这个API,我做的第一件事就是使用访问令牌登录。我正在使用jsonapi资源宝石

我现在有两个问题。我希望在成功的情况下返回用户和生成的访问令牌,否则返回失败消息

现在我有两个问题:

1-第一个问题是,如何返回此类数据(用户记录加上访问令牌)。阅读JSONAPI规范,我相信一个
复合文档将是一个不错的选择,但是如何使用这个gem呢


2-使用此gem,我如何响应非CRUD路由(如登录)?我必须在控制器里做些什么吗?在这种情况下,如何处理资源对象?

没有非资源数据这样的东西。您可以根据资源对几乎所有内容进行建模

这些资源不必直接映射到表,甚至不必作为可识别的实体存在于持久性层中。从api使用者的角度来看,资源表示是否是实际的数据库行或文档,或者是根据需要变出的完全抽象的实体,这几乎是不相关的

使用JR实现抽象资源非常简单,并且受支持:

抽象资源 不受模型支持的资源(纯粹用作基类 对于其他资源),应声明为抽象

因为抽象资源不希望得到模型的支持,所以它们 不会尝试发现模型类或其任何关系

现在,回到您的用例:

  • 这可以建模为与用户资源(多对一关联)相关的AuthToken资源(具有单个属性)。在您的情况下,您的用户资源可能与AuthToken资源一起包含在同一API响应中

  • 同样,如果您围绕资源对整个域进行建模,那么任何和所有操作都可以建模为CRUD操作。登录只是创建一个UserSession资源

  • JSON:API规范包含相关资源:

    列入相关资源

    端点可以通过以下方式返回与主数据相关的资源: 默认

    端点还可以支持include请求参数,以允许 客户端自定义应返回哪些相关资源

    JR也提供了此功能。

    两个问题-1.)在查询用户时,为什么要返回访问令牌(您应该将其存储在客户端的某个位置)和2。)您使用什么进行身份验证(即Desive、OAuth等)?