Skip to content

Feature Request: relax httpPayload to support maps and lists in httpPayload for awsRestJson1 protocol #2931

@Petroniuss

Description

@Petroniuss

Context

AWS Protocols do not support applying the httpPayload trait to members that target sets, lists, or maps.

There was an issue raised about relaxing httpPayload trait to allow maps and lists. This proposal been accepted but since aws protocols didn't support top-level maps and lists, a Smithy validator has been added that fails whenever there's httpPayload using aws protocols for codegen

Feature Request

Add support to AWS codegenerators (in particular restJson1) for having top-level maps and lists in responses.

Motivation

I was trying to translate a couple of my organizations API into Smithy but I have run into this issue a couple of times already where I can't express the response type in Smithy and have to resort into using top-level Document type as a response - this kind of defeats the purpose of using codegenerators.

Workarounds

One way that I can handle this on my end is to implement a middleware that maps a top-level map response into a structure with a nested map before smithy deserialization. However I'm skeptical about this since this seems shady due to modifying response.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions