Consumare un API con Autenticazione di Base: Guida Passo-Passo per il Metodo "GET" (2023)

Negli sviluppi moderni, l'integrazione con API è cruciale. In questo articolo dettagliato, esploreremo come consumare un'API utilizzando l'autenticazione di base, focalizzandoci sul metodo "GET". Seguiremo passo-passo il processo, garantendo chiarezza e precisione.

Creare la Destinazione

  1. Creazione Destinazione in SM59: Per iniziare, creiamo la destinazione necessaria per la chiamata API. Utilizziamo il codice transazione "SM59" e clicchiamo su "Create". Compiliamo le informazioni necessarie, inclusi i dettagli specifici dell'API e le credenziali di autenticazione.

  2. Impostazioni di Sicurezza: Passiamo alla scheda "Logon & Security" e selezioniamo l'autenticazione di base, inserendo l'utente e la password forniti. Salviamo le impostazioni.

Creare il Programma

  1. Programma Esecutivo con Transazione SE38: Creiamo un programma eseguibile utilizzando la transazione SE38. Analizzando la documentazione API, identifichiamo il parametro necessario, in questo caso "quickRfqId".

    REPORT z_test_api.
    PARAMETERS: p_rfqid TYPE numc10.
    
    DATA: lt_header_fields TYPE tihttpnvp,
         mv_uri TYPE string,
         mv_response TYPE string,
         mo_http_client TYPE REF TO if_http_client,
         mt_header_fields TYPE tihttpnvp.
  2. Preparazione dei Dati: Serializziamo il parametro in formato JSON e configuriamo la richiesta HTTP.

    CALL METHOD cl_http_client=>create_by_destination
     EXPORTING destination = 'Z_TEST_DESTINATION'
     IMPORTING client = mo_http_client
     EXCEPTIONS others = 1.
    
    APPEND VALUE #( name = 'Content-Type' value = 'application/json' ) TO lt_header_fields.
    APPEND VALUE #( name = 'accept' value = 'application/json' ) TO lt_header_fields.
    
    mo_http_client->request->set_header_fields( fields = lt_header_fields ).
    mo_http_client->request->set_method( if_http_request=>co_request_method_get ).
  3. Creare Connessione: Componiamo l'URI per la richiesta API e inviamo la richiesta.

    v_json = /ui2/cl_json=>serialize( data = p_rfqid pretty_name = /ui2/cl_json=>pretty_mode-camel_case ).
    mo_http_client->request->set_cdata( EXPORTING data = lv_json ).
    
    CONCATENATE mv_uri '?quickRfqId=' p_rfqid INTO mv_uri.
    cl_http_utility=>set_request_uri( request = mo_http_client->request uri = mv_uri ).
    
    mo_http_client->send( EXCEPTIONS http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 ).
  4. Consumare la Risposta: Dopo l'invio della richiesta HTTP, elaboriamo la risposta JSON e la convertiamo in dati utilizzabili.

    mo_http_client->receive( EXCEPTIONS http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 ).
    
    IF sy-subrc EQ 0.
     mo_http_client->response->get_status( IMPORTING code = DATA(lv_code) reason = DATA(lv_reason) ).
    
     IF lv_code <> '200'.
       CALL METHOD mo_http_client->close EXCEPTIONS others = 1.
     ENDIF.
    ENDIF.
    
    DATA(lo_rest_client) = NEW cl_rest_http_client( io_http_client = mo_http_client ).
    lo_response = lo_rest_client->if_rest_client~get_response_entity( ).
    mv_response = lo_response->get_string_data( ).
    /ui2/cl_json=>deserialize( EXPORTING json = mv_response CHANGING data = ls_response ).

Risultato

Al termine di questo processo, avremo la struttura dati "ls_response" contenente il risultato della nostra chiamata API. Questo risultato può essere utilizzato con successo nei nostri sviluppi, come evidenziato nella figura 4.

Questo tutorial fornisce una guida dettagliata su come consumare un'API utilizzando il metodo "GET" con autenticazione di base. Implementando correttamente questi passaggi, avrai accesso ai dati dell'API in modo efficiente e sicuro.

Ricorda, la chiarezza nella gestione delle API è essenziale per garantire il corretto flusso di dati nei tuoi progetti. Implementa questi passaggi con attenzione e sfrutta appieno il potenziale delle API nella tua programmazione.

Top Articles
Latest Posts
Article information

Author: Melvina Ondricka

Last Updated: 31/10/2023

Views: 5814

Rating: 4.8 / 5 (48 voted)

Reviews: 87% of readers found this page helpful

Author information

Name: Melvina Ondricka

Birthday: 2000-12-23

Address: Suite 382 139 Shaniqua Locks, Paulaborough, UT 90498

Phone: +636383657021

Job: Dynamic Government Specialist

Hobby: Kite flying, Watching movies, Knitting, Model building, Reading, Wood carving, Paintball

Introduction: My name is Melvina Ondricka, I am a helpful, fancy, friendly, innocent, outstanding, courageous, thoughtful person who loves writing and wants to share my knowledge and understanding with you.