我有以下类型:
data Device = Device { _deviceId :: DeviceId
, _deviceName :: Text
, _deviceDtype :: DType }
deriving (Show, Eq, Generic)
makeFields ''Device
$(deriveJSON (mkOptions "_device") ''Device)
这里我使用deriveJSON
而不是Generic
机制,因为我需要调整此数据类型的JSON表示字段的名称:
-- | Make JSON conversion options.
mkOptions :: String -> Options
mkOptions prefix = defaultOptions { fieldLabelModifier = removePrefix prefix
, unwrapUnaryRecords = True
}
需要前缀来生成类型的镜头,但JSON表示中不需要。
现在我正在尝试使用servant-swagger生成Swagger文档,这需要Device
_deviceId
个实例。现在问题是生成的模式将具有上面的访问者函数的给定前缀名称(_deviceName
,_deviceDType
,id
)。相反,我会修改版本(name
,dtype
和select MonthName, id_seller, max(TotalSales) from (
select to_char(sysdate, 'Month') MonthName, sellers.id_seller, count(sellers.id_seller) TotalSales
from sellers inner join product
on sellers.name_product = product.name_product
group by to_char(view_datetime, 'Month'), sellers.id_seller
) tab
group by MonthName, id_seller
)。
有没有办法以这种方式自定义泛型推导过程?
答案 0 :(得分:4)
对[{1}}和servant-swagger
不太熟悉,但看起来像这样的事情应该可以胜任:
swagger2