我正在使用Grape :: Entity进行自定义响应 但是当我看到文档时 Grape::Entity
它说用grap :: entity我们可以决定运行时哪个属性要发送&不是。 但即使给出提示,我也无法理解CODE
expose :ip, if: { type: :full }
expose :ip, if: lambda { |instance, options| options[:type] == :full } # exposed if the function evaluates to true
expose :ip, if: :type # exposed if :type is available in the options hash
expose :ip, if: { type: :full } # exposed if options :type has a value of :full
expose :ip, unless: ... # the opposite of :if
expose :last_reply, using: API::Entities::Status do |status, options|
status.replies.last
end
with_options(format_with: :iso_timestamp) do
expose :created_at
expose :updated_at
end
expose :digest do |status, options|
Digest::MD5.hexdigest status.txt
end
如果有人逐行解释,我真的很感激
答案 0 :(得分:0)
好的,我会试一试。
您应该知道的一件事是,当您在Grape端点中调用Grape :: Entity时,可以将可选属性传递给Grape :: Entity:
present statuses, with: API::Entities::Status, type: :full
您可以将任何内容传递给Entity对象(例如type
)。
使用这些可选属性,您可以在实体内部工作。
type
的值为:full
,则会显示:ip
instance
和options
哈希。type
,则会显示:ip
:using
声明哪个Entity类用于此公开。该块设置传递给实体的实例,在本例中为status.replies
的最后一个对象。with_options
块格式化日期或时间对象。在这种情况下,使用:iso_timestamp
格式化程序。status.txt
的摘要。 我希望这会以某种方式帮助你。