aws / aws/aws-lambda-java-libs
How about some Builders in lambda-java-events
- Langage dominant
- Java
- Étoiles
- 548
- Forks
- 241
- Merge moyen
- 2 j 5 min
- PR mergées (30 j)
- 11
Description
The core AWS Java/Kotlin libraries provide builders for just about every object. Builders abound! In the `aws-lambda-java-events` library we get sad old POJOs.
```Kotlin
val messageAttribute = SQSEvent.MessageAttribute()
messageAttribute.stringValue = "So Verbose!"
val sqsMessage = SQSEvent.SQSMessage()
sqsMessage.body = objectMapper.writeValueAsString(DummyMessage(name = "Bob"))
sqsMessage.messageAttributes["So-Much-Typing"] = messageAttribute // <<-- whoops, error, messageAttributes is null
```
I guess I could do this, but its not winning any awards:
```Kotlin
val messageAttribute = SQSEvent.MessageAttribute()
messageAttribute.stringValue = "Still have to do this on two lines"
val sqsMessage = SQSEvent.SQSMessage()
sqsMessage.body = objectMapper.writeValueAsString(DummyMessage(name = "Bob"))
sqsMessage.messageAttributes = mapOf("So-Much-Typing" to messageAttribute)
```
I'm using `SQSEvent` as an example because that's what I was working with today. But same goes for `SNSEvent`, `S3Event`, `ScheduleEvent`, `LexEvent`...
I see that `KafkaEvent` uses Lombok. I'd take that.
Thanks.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par les classes SQSEvent et comparez leur construction actuelle de POJO avec le point d’entrée KafkaEvent basé sur Lombok. Examinez les classes SNSEvent, S3Event, ScheduleEvent et LexEvent correspondantes, puis définissez une approche de Builder cohérente pour tous les types d’événements et vérifiez que les objets imbriqués tels que messageAttributes peuvent être construits sans initialisation à null.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- aws, java, kotlin
- Domaine
- backend, cloud
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100