Admiral-Piett / goaws

AWS (SQS/SNS) Clone for Development testing
MIT License
779 stars 144 forks source link

Incorrectly accept messages with empty message body #190

Open skatsuta opened 5 years ago

skatsuta commented 5 years ago

Thank you for really useful software! It's very lightweight and I love it.

I found a different behavior from SQS. goaws accepts messages with empty message body, while SQS does not.

Version

1.1.2

Container

$ docker container ls | rg goaws
eebe591eb821        pafortin/goaws:1.1.2             "/goaws_linux_amd64"     About an hour ago   Up About an hour    0.0.0.0:4100->4100/tcp   test-queue

Expected behavior (SQS)

$ aws sqs send-message --queue-url https://sqs.us-east-1.amazonaws.com/************/test-queue
--message-body ''

An error occurred (MissingParameter) when calling the SendMessage operation: The request must contain the parameter MessageBody.

Current behavior (goaws)

$ aws --endpoint-url http://localhost:4100 sqs send-message --queue-url http://sqs.us-east-1.goaws.com:4100/100010001000/test-queue --message-body ''
{
    "MD5OfMessageBody": "d41d8cd98f00b204e9800998ecf8427e",
    "MD5OfMessageAttributes": "",
    "MessageId": "94ac0bbf-9cc9-4c22-8162-41dba0e7e66a",
    "SequenceNumber": ""
}

I think goaws should reject messages with empty message body as well. Thank you.