我的 API 有时会以 CSV 格式返回数据。但是根据返回的数据,CSV 格式化程序的行为会有所不同(作为分层数据,应该根据数据按照特定规则展平)所以我编写了许多自定义 CSV 格式化程序。但我发现我无法动态更改格式化程序:
我正在使用并想要使用Grape::Entities
,API 应该能够将数据公开为 json、xml 和 csv。
我试过了 :
desc 'My API 1'
get '/' do
formatter :csv, CustomCsvFormatter
present my_data, with: MyEntity
end
但它失败了,因为在这种情况下格式化程序不是定义的方法。
我试过了 :
desc 'My API 1'
formatter :csv, CustomCsvFormatter
get '/' do
present my_data, with: MyEntity
end
desc 'My API 2'
formatter :csv, CustomOtherCsvFormatter
get '/blublu' do
present my_data, with: MyEntity
end
但仅CustomOtherCsvFormatter
适用于所有方法。最后一个格式化程序替换先前定义的。
有没有办法动态更改格式化程序?
你有没有看到其他方法来做我想做的事?:根据 API 方法使用自定义格式化程序输出葡萄实体。