Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider exposing connectCodeToHTTP #781

Open
emarx opened this issue Sep 27, 2024 · 1 comment
Open

Consider exposing connectCodeToHTTP #781

emarx opened this issue Sep 27, 2024 · 1 comment
Labels
enhancement New feature or request

Comments

@emarx
Copy link

emarx commented Sep 27, 2024

Is your feature request related to a problem? Please describe.
I have some code that uses connect.Error, but need to serve HTTP text responses to serve a Prometheus-compatible endpoint. I'd love to use the same auth code that my connect endpoints use for my HTTP endpoint, but I need to map the status codes.

Describe the solution you'd like
There's a helpful function connectCodeToHTTP, but it's private. Could we expose this function?

Describe alternatives you've considered
Copy-paste this function, or build some other error class, but would love to use this one

@emarx emarx added the enhancement New feature or request label Sep 27, 2024
@jhump
Copy link
Member

jhump commented Oct 15, 2024

We are definitely batting around the best way to expose lower-level protocol details and implementation code. We were thinking of creating a separate connect-protocol-go repo that connect-go could import, and then we could use that other repo from other tools that want to do more with the protocol without necessarily reimplementing it (such as vanguard-go). The main reason to not add it directly to this repo is just to keep the surface area for Connect users simple and small (most users won't have reason to go down to protocol-level details).

An alternate formulation for exposing this functionality could be an HTTPStatus method on connect.Code. We could also add the inverse in the form of a CodeFromHTTPStatus(int) Code function. A downside for the former, or even exporting ConnectCodeToHTTP, is these might imply to users that these HTTP status codes are always used for these codes. That would be misleading since the HTTP status code is frequently 200, with the Connect Code serialized in the body or in trailers (depending on stream type and whether gRPC or gRPC-Web is used instead of the Connect protocol).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants