client_java
client_java copied to clipboard
Escaping API inconsistencies
If I understand correctly, this is approximately how I should produce an output:
expositionFormats.findWriter(accept)
.write(System.out, registry.scrape(), EscapingScheme.fromAcceptHeader(accept));
The problem with this is that the API forces me to pass the accept header twice, so theoretically I can do this:
expositionFormats.findWriter(acceptHeaderOne)
.write(System.out, registry.scrape(), EscapingScheme.fromAcceptHeader(acceptHeaderTwo));
Which can lead to inconsistencies, it is easy to misuse the API. I'm wondering if something like this would make sense:
expositionFormats.findWriter(accept).write(System.out, registry.scrape());
and the writer would have the EscapingScheme.
The writer still can be cached but it would be a little more than today.
So we'd need to add the escaping scheme to the writer - creating ExpositionFormatWriterWithEscaping.
If more users fall into this trap, then I'll consider adding this new API.