aws / aws/aws-lambda-runtime-interface-emulator

Support http-request with multipart/form-data.

Open
#61 0 comments 1 reaction 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
1.1k
Forks
118
Avg merge
42m
Merged PRs (30d)
2

Description

When sending http-request using curl or postman with content-type as ‘application/json’, it is working well.
`curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" -d '{[body with json]}'`
But with content-type as ‘multipart/form-data’, it is not working with error about “unmarshal input : ‘utf-8’”
`curl -XPOST "http://localhost:9000/2015-03-31/functions/function/invocations" --form '[some message or file]'`

Error log
`START RequestId: 869477bd-4c63-4d81-802c-416e9634067b Version: $LATEST
Traceback (most recent call last):able to unmarshal input: 'utf-8' codec can't decode byte 0xb9 in position 451: invalid start byte
END RequestId: 869477bd-4c63-4d81-802c-416e9634067b
REPORT RequestId: 869477bd-4c63-4d81-802c-416e9634067b Duration: 20.28 ms Billed Duration: 100 ms Memory Size: 3008 MB Max Memory Used: 3008 MB`

It need to support content-type as ‘multipart/form-data’. I wonder it is possible or only support ‘application/json’.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the request against /2015-03-31/functions/function/invocations using the curl --form example in the issue, and compare it with the working JSON request. Trace the emulator's request handling from that endpoint; done means multipart/form-data requests containing messages or files are accepted without the UTF-8 unmarshal error.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
api, backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.