YouJiacheng edited a comment on issue #12905: URL: https://github.com/apache/pulsar/issues/12905#issuecomment-977550822
@nlu90 1. However, get state API just use JSON not a stream, if developers want to extend to big object, they need to rewrite get state API. MOST IMPORTANT: ALL pulsar REST API using multipart/form-data DOES NOT provide ANY reference about request body! While other REST API using JSON DOES! For example: https://pulsar.apache.org/functions-rest-api/?version=2.8.1#operation/putFunctionState vs https://pulsar.apache.org/functions-rest-api/?version=2.8.1#operation/registerFunction 2. I want to know how to put function state directly using HTTP request in my application, not using pulsar-admin CLI. After check https://github.com/apache/pulsar/blob/master/pulsar-broker/src/main/java/org/apache/pulsar/broker/admin/impl/FunctionsBase.java#L535 , I guess the request body should be a multipart/form-data with a field with key 'state' and JSON string value '{"key": "kk", "stringValue": "hello"}'. Thus I write following code, but it does not work. ``` import aiohttp async def put_state(): async with aiohttp.ClientSession() as session: data = aiohttp.FormData( {'state': '{"key": "kk", "stringValue": "Hello"}'} ) async with session.post('..../tn/ns/func/state/kk', data=data) as resp: print(resp.status) ``` or may be it is aiohttp.FormData's problem. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
