2016-08-09 14 views
0

私はSpray.ioを使用してRESTful APIを構築しました。 複数のエンドポイントがあり、それぞれがJSONを返します。 Spray JSON marshallerを使用して、内部オブジェクトをJSONにマーシャリングし、ユーザーに返します。だから私は次のように何か... MyResponseはケースクラスですSpray.io - 応答からフィールドを削除する

respondWithMediaType(`application/json`) { 
     complete(MyResponse(username, password)) 
     } 

...

case class MyResponse(username:String, password:String) 

を持っているしかし、私は応答で返されるフィールドを選択します。したがって、この場合、「パスワード」フィールドが返される前に削除する必要があります。 スプレーでこれを行うにはどうすればよいですか?

ありがとう

+2

異なる方法で 'MyResponse'を逆シリアル化するためにフックをジャンプするのではなく、' PasswordLessResponse'ケースクラスを作成してみませんか? –

+0

hhhmmm、多分私はこれを考えています...だから、私は完全な指示文に必要なフィールドを選んでカスタムオブジェクトを返すだけでしょうか? – fatlog

+0

それは私がそれに取り組む方法です。共通のフィールドを保持するための基本特性または抽象クラスを作成し、カスタムケースクラスでベースを拡張することができます。それは今は過剰なものかもしれませんが、道のりで実行可能かもしれません。 –

答えて

0

...(彼は答えとして追加していない)上記Yuvals提案で

を行ってきました

を「なぜ、代わりに別の方法でMyResponseをデシリアライズするためにフックをジャンプで、PasswordLessResponseケースクラスを作成していない」とだけ関連するケースを作成しましたクラスとマーシャラーは、必要な場所に移入され、返されます。

ありがとうございました!

関連する問題