1

JSON-APIリソースをサービス オブジェクトに適用するのに苦労しています。これが私のラフドラフトです。

class V1::AccountCreateController < JSONAPI::ResourceController
  def create
    # Form object for the parameter validation
    form = AccountCreateCustomerForm.new customer_params
    form.validate!

    # Use my service object instead of JR's 1:1 mapping to the ActiveRecord model to create it.
    account = AccountCreateService.call(form.attributes)
    if account.errors.blank?
        # selialize the result and rednder
        serializer = JSONAPI::ResourceSerializer.new(resource_klass, ...)
       render json: serializer.serialize_to_hash(resource_klass.new(account)), status: 201
    else
       render render json: 'error message', status: 422
    end
  end
end

これは実際に機能します。しかし、私はそれがきれいだとは思わない。

JSON-API リソースはサービス オブジェクトで使用することは想定されていないと思います。

ローカルデータベースだけでなく、データ処理のためにサードパーティ API (Stripe) を投稿する必要があります。これにより、堅牢でテスト可能な支払いシステムの開発が容易になりました。(コールバックはありません。)

しかし、JSON-API ではサービス オブジェクトを扱うのはかなり困難です。(Create/Update/Destroy アクションの場合)

これを回避するためのアイデアはありますか?

いくつかの例も投稿していただけると本当に助かります。

PSフォームオブジェクトにはドライバリデーションを使用しています。

4

0 に答える 0