Contattare API - Spring

di il
7 risposte

Contattare API - Spring

Salve a tutti,

spero sia la sezione giusta.
Mi sto imbattendo da veramente poco con programmazione Java BE utilizzando SpringBoot e stavo facendo degli esercizi e mi sono bloccato.
Spiego meglio: l'esercizio che devo fare è quello di andare a leggere da un conto corrente il saldo relativo ad una persona, identificata da un accountId.
Nel mio controller faccio la chiamata al service passando come input alla funzione del service un accountId, ma nel service cosa implemento? Come faccio a contattare l'API specifica che mi restituisce il saldo?

Per spiegarmi meglio:
- Controller --> return letturaSaldo.getSaldo(accountId);
- Service --> .... ? (dovrei contattare l'API che mi fornisce il saldo)


Grazie per l'attenzione.

7 Risposte

  • Re: Contattare API - Spring

    Krakes ha scritto:


    ma nel service cosa implemento? Come faccio a contattare l'API specifica che mi restituisce il saldo?
    Scusa ma questa API di che tipo è?? È un web service? Se sì SOAP? REST? Altro? Se no, cosa?
  • Re: Contattare API - Spring

    andbin ha scritto:


    Krakes ha scritto:


    ma nel service cosa implemento? Come faccio a contattare l'API specifica che mi restituisce il saldo?
    Scusa ma questa API di che tipo è?? È un web service? Se sì SOAP? REST? Altro? Se no, cosa?
    Hai ragione, ho dato per scontato...si è un web service di tipo REST
  • Re: Contattare API - Spring

    Krakes ha scritto:


    si è un web service di tipo REST
    Se di quella API REST non viene fornita (non saprei ora da chi, non hai precisato) una API Java che in sostanza permette (solitamente) di "nascondere" e ignorare quello che c'è dietro, tocca a te andare a fare direttamente le chiamate REST.
    Ora, REST sostanzialmente vuol dire HTTP, quindi le chiamate HTTP si possono fare in molti modi e con diverse librerie HTTP "client".
    Con Spring una possibilità è usare il Rest Template (qui ci sono delle info ma si trova anche altro).

    Chiaramente tutte le questioni sul marshalling/unmarshalling (da/a XML o JSON tipicamente), autenticazione, security e quant'altro, li devi valutare tu se lavori a questo livello direttamente col servizio REST.
  • Re: Contattare API - Spring

    andbin ha scritto:


    Krakes ha scritto:


    si è un web service di tipo REST
    Se di quella API REST non viene fornita (non saprei ora da chi, non hai precisato) una API Java che in sostanza permette (solitamente) di "nascondere" e ignorare quello che c'è dietro, tocca a te andare a fare direttamente le chiamate REST.
    Ora, REST sostanzialmente vuol dire HTTP, quindi le chiamate HTTP si possono fare in molti modi e con diverse librerie HTTP "client".
    Con Spring una possibilità è usare il Rest Template (qui ci sono delle info ma si trova anche altro).

    Chiaramente tutte le questioni sul marshalling/unmarshalling (da/a XML o JSON tipicamente), autenticazione, security e quant'altro, li devi valutare tu se lavori a questo livello direttamente col servizio REST.
    Perfetto, ti ringrazio ed era quello che ero riuscito ad utilizzare anche io...siccome nell'endpoint dell'API che richiamo l'accountId può variare, nel mio caso ho fatto un --> restTemplate.getForObject(URI.replace(accountId, id), nomeDellaClasse.class) e quello che ottengo è --> 500 - URI is not absolute
    Sbaglio l'URI che vado a contattare io?
  • Re: Contattare API - Spring

    Krakes ha scritto:


    mio caso ho fatto un --> restTemplate.getForObject(URI.replace(accountId, id), nomeDellaClasse.class) e quello che ottengo è --> 500 - URI is not absolute
    Non credo che quel URI.replace ti serva. Il id lo devi passare dove? Come path segment o in query string? Guarda gli esempio al link indicato.
  • Re: Contattare API - Spring

    andbin ha scritto:


    Krakes ha scritto:


    mio caso ho fatto un --> restTemplate.getForObject(URI.replace(accountId, id), nomeDellaClasse.class) e quello che ottengo è --> 500 - URI is not absolute
    Non credo che quel URI.replace ti serva. Il id lo devi passare dove? Come path segment o in query string? Guarda gli esempio al link indicato.
    Si come negli esempi...ora provo a fare le modifiche del caso e spero funzioni...grazie
  • Re: Contattare API - Spring

    Krakes ha scritto:


    Si come negli esempi...
    In quei esempi al link non c'è alcun URI.replace

    Es.
    Person person = restTemplate.getForObject("https://example.com/people/{id}", Person.class, 42);

    Si usano gli uri template che sono quelle forme es. {id} che poi il RestTemplate rimpiazza in automatico con gli argomenti passati (quel 42)
Devi accedere o registrarti per scrivere nel forum
7 risposte