Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upload d'une image #50

Open
mathieulemorvan opened this issue Aug 5, 2021 · 0 comments
Open

Upload d'une image #50

mathieulemorvan opened this issue Aug 5, 2021 · 0 comments
Assignees
Labels
need review recette Rédaction d'une recette du Cookbook

Comments

@mathieulemorvan
Copy link
Contributor

mathieulemorvan commented Aug 5, 2021

Quel design pour une ressource qui comporte des champs json (metadata de l'image) et une image ?

Quelques pistes :

  • transformer l'image en base64 et l'envoyer dans un champ string dans le json
    • => problème de la conversion et de l'ajout de 30% de poids en plus
    • mais ça permet de n'avoir qu'un seul appel pour les metadata + le fichier, et on reste sur de la manipulation de string donc plus "simple" que du binaire
    • => à déconseiller ou réserver aux petites images
  • faire deux ressources séparées : un premier appel pour créer la ressource avec du json, et un 2e pour uploader juste l'image avec le content type style image/png
    • genre POST /maresources + PUT /maresources/123/image
  • utiliser le content-type multipart/form-data, comme un formulaire web classique
    • avantage : on peut avoir le fichier + les metadata en un seul appel
    • on peut uploader plusieurs fichiers en un seul appel
    • réserves : est-ce encore du REST ? facilité d'utilisation : à voir suivant les clients http, mais ça peut perturber les consommateurs

Sources :

Exemple multipart avec Spring + Swagger :

@ApiOperation("Test multipart")
@PostMapping("test", consumes = [MULTIPART_FORM_DATA_VALUE], produces = [APPLICATION_JSON_VALUE])
fun test(
    @RequestParam name: String,
    @RequestPart document: MultipartFile
): Unit = TODO()

ça s'affiche correctement dans swagger :
image

@mathieulemorvan mathieulemorvan self-assigned this Sep 17, 2021
@mathieulemorvan mathieulemorvan added the recette Rédaction d'une recette du Cookbook label Nov 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
need review recette Rédaction d'une recette du Cookbook
Projects
None yet
Development

No branches or pull requests

1 participant