私はServantとPersistentを併用しています。私はUser
エンティティを持っており、コンテキストに応じてフィールドのサブセットだけで応答できるかどうかを知りたいと思います。1つの永続エンティティの複数のJSONインスタンス
のは、以下の2つのエンドポイントを考えてみましょう:GET /user
要求が到着すると
share [mkPersist sqlSettings, mkMigrate "migrateAll"] [persistLowerCase|
User json sql=users
username Text
email Text
password Text
token Text
bio Text Maybe default=NULL
image Text Maybe default=NULL
createdAt UTCTime default=now()
updatedAt UTCTime Maybe default=NULL
UniqueUser username email
deriving Show
|]
、我々は単に認証のためemail
とtoken
で応答したいとしましょう:
type UserAPI = "user"
:> Capture "username" Username
:> Get '[JSON] (Entity User)
type ProfileAPI = "profiles"
:> Capture "username" Username
:> Get '[JSON] (Entity User)
type AppAPI = UserAPI :<|> ProfileAPI
ここに私たちのUser
モデルです。一方、GET /profile/:username
リクエストが届くと、username
,bio
およびimage
と応答したいと考えています。
どうすればこのことができますか?ありがとう。
アップデート:私は特定のテーブルに別のレコードを使用して永続的なタイプとサーバントの要求タイプの間で「変換」することが可能であると考えています。たとえば、Persistentで使用され、もう1つはクライアントとのインターフェイスとして使用されます。しかし、これには2つの間で変換する機能が必要な場合があります。論理が成長するにつれて、物事は面倒になるだろうと私は推測する。
さらに、ToJSONインスタンスとFromJSONインスタンスを定義することができたと思っていましたが、私はそれを回避することはできません。
@AlexisKingあなたのコメントを投稿した私の投稿を編集しました。私はポイントを逃したのですか?ありがとう。 –