thrift-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Yuxuan Wang (Jira)" <j...@apache.org>
Subject [jira] [Commented] (THRIFT-4914) Go: Link between THeader and context object
Date Thu, 17 Oct 2019 22:50:00 GMT

    [ https://issues.apache.org/jira/browse/THRIFT-4914?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16954153#comment-16954153
] 

Yuxuan Wang commented on THRIFT-4914:
-------------------------------------

[~dcelasun] I don't know yet. I think on the current API there's no context objects passed
when sending/receiving the response, so if we want something similar that's injected in the
context object, this will be a breaking API change (to add the context object), but adding
a context object may or may not make sense in the response function calls (e.g. do we return
an extra value as the context? that would look very weird).

For client reading, it might be easier because the business logic code usually have direct
access to the client object, and it would be easy to add some helper functions to TClient
to access headers. For server writing, I need to think more about the best way to do it (I'm
open to suggestions :)).

Thanks for the reminder, I totally missed the news of the release of 0.13.0.

> Go: Link between THeader and context object
> -------------------------------------------
>
>                 Key: THRIFT-4914
>                 URL: https://issues.apache.org/jira/browse/THRIFT-4914
>             Project: Thrift
>          Issue Type: New Feature
>          Components: Go - Library
>            Reporter: Yuxuan Wang
>            Priority: Major
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> We have "raw" THeader support for Go in THRIFT-4612 now, the next step would be to make
them more easily accessible.
> The are 2 directions, 4 parts of this ticket:
>  * client -> server (requests)
>  ** Read headers on server
>  ** Write headers on client
>  * server -> client (responses)
>  ** Write headers on server
>  ** Read headers on client
> Take the reading on server as an example. Currently we can read the headers from either
the transport or the protocol, but neither the transport nor the protocol objects are "easily
accessible" when you are writing the business logic code (writing the request handler in the
server code). It would be much better if we inject the headers into the context object passed
into the request handlers.
> We already have code injecting the headers to the context object that lives outside of
the thrift library working. I'll send out a PR in the coming days to add that to the thrift
library, so the performance would be better (we no longer need to do the extra injecting work),
and it would be a lot easier to use.
> We'll think about how to best do the client writing part (probably auto read the headers
from the context object that passed into the client request code, and write to THeaderProtocol
automatically), and send out a PR soon-ish.
> The other direction, server -> client, is used much less often with headers, so we'll
probably punt on it for now, and come back revisit them in the future.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Mime
View raw message