如何在自定义控制器操作中呈现jsonapi-resources响应? [英] How to render a jsonapi-resources response in an custom controller action?

查看:118
本文介绍了如何在自定义控制器操作中呈现jsonapi-resources响应?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我通过重写JSONAPI :: ResourceController控制器中的create动作来实现自己的对象创建逻辑.

I have implemented my own object creation logic by overriding the create action in a JSONAPI::ResourceController controller.

成功创建后,我要呈现创建的对象表示形式.

After successful creation, I want to render the created object representation.

如何使用jsonapi-resources gem呈现此自动生成的JSON API响应?

调用super方法也会触发默认的资源创建逻辑,因此这对我来说不可行.

Calling the super method does also trigger the default resource creation logic, so this does not work out for me.

class Api::V1::TransactionsController < JSONAPI::ResourceController
  def create
    @transaction = Transaction.create_from_api_request(request.headers, params)

    # render automatic generated JSON API response (object representation)
  end
end

推荐答案

您可以执行以下操作:

class UsersController < JSONAPI::ResourceController
  def create
    user = create_user_from(request_params)

    render json: serialize_user(user)
  end

  def serialize_user(user)
    JSONAPI::ResourceSerializer
            .new(UserResource)
            .serialize_to_hash(UserResource.new(user, nil))
  end
end

这样,您将获得符合Jsonapi标准的json响应

this way you will get a json response that is compliant with Jsonapi standards

这篇关于如何在自定义控制器操作中呈现jsonapi-resources响应?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆