2017-05-19 1 views
0

J'essaye d'envoyer une seule chaîne à une API REST via Spring Boot mais je reçois toujours 400: Bad Request. J'ai vérifié par postier que cette JSON est acceptée par l'API:Sprint Boot - Publier une seule chaîne/enum sur un service REST

{ 
    "currency": "USD" 
} 

J'ai écrit le morceau de code suivant pour poster à ce service:

public Account createAccount(Currency currency) 
{ 
     Account account = (Account) restTemplate.postForObject(url, currency.toString(), Account.class); 
     return account; 
} 

Monnaie ENUM est donnée ci-dessous:

public enum Currency 
{ 
    USD, EUR 
} 

J'ai essayé les deux en l'envoyant comme valeur enum et string, aucune n'a fonctionné.

+0

Pouvez-vous également publier le code du contrôleur? –

Répondre

0

Vous devez créer une classe qui encapsule le ENUM par exemple:

public class CreateAccountRequest { 

    private final Currency currency; 

    public CreateAccountRequest(Currency currency) { 
    this.currency = currency; 
    } 

    public Currency getCurrency() { 

    } 
} 

Puis, quand vous faites postForObject:

restTemplate.postForObject (url, createAccountRequest, Account.class);

+0

J'ai déjà un compte objet DTO, devrais-je encore avoir besoin d'une classe séparée? Permettez-moi de mettre à jour mon message original pour inclure le compte DTO. – zhaider