Есть ли у Spring способ создания потоковых html-файлов? - PullRequest
0 голосов
/ 21 октября 2019

У меня есть веб-сайт Spring, который генерирует html-страницы.

На данный момент путь создания контента: kotlinx.html -> String (может быть огромным) -> Mono<String> ->Mono<ServerResponse>

Упрощенный метод:

val response = buildString {
    val html = appendHTML()
    html.head {
        title(endpoint.title)
    }
    html.body {
        h1 {
            +"Some header"
        }

        p {
            generateSomeText() // can be suspended/asynchronous
        }
    }
}
ServerResponse
        .ok()
        .html()
        .syncBody(response)
        .awaitSingle()

Вопрос: есть ли у Spring какие-либо неблокирующие опции для добавления строкового содержимого? Например, это любой asyncBody метод для выполнения вызовов, подобных этому:

ServerResponse
        .ok()
        .html()
        .asyncBody { appendable: Appendable -> // this appendable does direct write to the output buffer
            val html = appendable.appendHTML()
            html.head {
                title(endpoint.title)
            }
            html.body {
                h1 {
                    +"Some header"
                }

                p {
                    generateSomeText() // can be suspended/asynchronous
                }
            }
        }
        .awaitSingle()

В этом случае я могу избежать ненужного выделения String (что является преимуществом 1) и могу связать сопрограмму создания текстового контента с ответом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...