インターフェース ServerResponse.BodyBuilder

すべてのスーパーインターフェース:
ServerResponse.HeadersBuilder<ServerResponse.BodyBuilder>
含まれているインターフェース:
ServerResponse

public static interface ServerResponse.BodyBuilder extends ServerResponse.HeadersBuilder<ServerResponse.BodyBuilder>
レスポンスに本文を追加するビルダーを定義します。
  • メソッドの詳細

    • contentLength

      ServerResponse.BodyBuilder contentLength(long contentLength)
      Content-Length ヘッダーで指定されているように、本文の長さをバイト単位で設定します。
      パラメーター:
      contentLength - コンテンツの長さ
      戻り値:
      このビルダー
      関連事項:
    • contentType

      ServerResponse.BodyBuilder contentType(MediaType contentType)
      Content-Type ヘッダーで指定されているように、本文のメディア型を設定します。
      パラメーター:
      contentType - コンテンツ型
      戻り値:
      このビルダー
      関連事項:
    • body

      レスポンスの本文を指定の Object に設定して返します。

      非同期レスポンスボディは、CompletionStageSE または Publisher をボディ(または ReactiveAdapterRegistry を介して適応できる単一エンティティの非同期プロデューサー)として提供することでサポートされます。

      パラメーター:
      body - レスポンスの本文
      戻り値:
      構築されたレスポンス
    • body

      <T> ServerResponse body(T body, ParameterizedTypeReference<T> bodyType)
      レスポンスの本文を指定の Object に設定して返します。パラメーター bodyType は、ジェネリクス型をキャプチャーするために使用されます。
      パラメーター:
      body - レスポンスの本文
      bodyType - ジェネリクス型をキャプチャーするために使用されるボディの型
      戻り値:
      構築されたレスポンス
    • render

      ServerResponse render(StringSE name, ObjectSE... modelAttributes)
      指定された modelAttributes を使用して、指定された name でテンプレートをレンダリングします。モデル属性は、生成された名前でマップされます。

      注: この方法を使用しても、実際の規則名を正しく判別できないため、空の CollectionsSE はモデルに追加されません

      パラメーター:
      name - レンダリングされるテンプレートの名前
      modelAttributes - テンプレートをレンダリングするために使用された modelAttributes
      戻り値:
      構築されたレスポンス
    • render

      ServerResponse render(StringSE name, MapSE<StringSE,?> model)
      指定された model を使用して、指定された name でテンプレートをレンダリングします。
      パラメーター:
      name - レンダリングされるテンプレートの名前
      model - テンプレートのレンダリングに使用されるモデル
      戻り値:
      構築されたレスポンス
    • stream

      低レベルのストリーミングレスポンスを作成します。SSE サポートについては、ServerResponse.sse(Consumer) を参照してください。

      streamConsumer に提供される ServerResponse.StreamBuilder は、ストリーミング形式でレスポンスに書き込むために使用できます。ビルダーは、バッファリングされたコンテンツをネットワークにフラッシュするロールを担うことに注意してください。

      例:

       public ServerResponse handleStream(ServerRequest request) {
           return ServerResponse.ok()
             .contentType(MediaType.APPLICATION_ND_JSON)
             .stream(stream -> {
               try {
                 // Write and flush a first item
                 stream.write(new Person("John", 51), MediaType.APPLICATION_JSON)
                   .write(new byte[]{'\n'})
                   .flush();
                 // Write and complete with the last item
                 stream.write(new Person("Jane", 42), MediaType.APPLICATION_JSON)
                   .write(new byte[]{'\n'})
                   .complete();
               }
               catch (IOException ex) {
                 throw new UncheckedIOException(ex);
               }
           });
       }
       
      パラメーター:
      streamConsumer - ストリームビルダーが提供されるコンシューマー
      戻り値:
      サーバー側のストリーミングレスポンス
      導入:
      6.2