Я создаю демонстрацию Rest/SSE Api
, используя Quarkus + Panache MongoDb + Reactive
, но при подключении на клиенте с использованием cURL данные потребляются, и соединение закрывается.
Я ожидал, что соединение на клиенте останется открытым, а пу sh потоковые данные.
class Resource {
@GET
@RolesAllowed({"ROLE_ADMIN", "ROLE_COMPANY_READ", "ROLE_COMPANY_SAVE", "COMPANY_DELETE", "ROLE_COMPANY_CREATE"})
@Produces(MediaType.SERVER_SENT_EVENTS)
@SseElementType(MediaType.APPLICATION_JSON)
public Multi<CompanyDto> getAllActiveCompanies(@Context SecurityContext ctx) {
String name = ctx.getUserPrincipal().getName();
log.info("hello {}", name);
Multi<Company> multi = hasRoleAdmin(ctx) ? Company.findActiveCompanies() : Company
.findActiveCompaniesByUser(name);
return multi.onItem().apply(c -> companyMapper.toResource(c));
}
}
клиент
curl -H "Authorization: Bearer ..." -v -N http://localhost:8080/api/companies
data: {"activated":true,"createdByUser":"admin@gmail.com","name":"Twitter"}
data: {"activated":true,"createdByUser":"company_admin@gmail.com","name":"My Company"}
data: {"activated":true,"createdByUser":"company_admin@gmail.com","name":"My Company 2"}
* Connection #0 to host localhost left intact
Исходный код: https://github.com/rodrigorodrigues/quarkus-rest-api-reactive-mongodb