Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica# Ingegneria del software

Migliorare l'uso delle API con strumenti potenziati

Un nuovo banco di lavoro semplifica il debug delle API e l'apprendimento per gli utenti.

― 5 leggere min


Strumenti API per unoStrumenti API per unosviluppo miglioredelle API e riducono gli errori.Strumenti semplificati aumentano l'uso
Indice

Le API, o Interfacce di Programmazione delle Applicazioni, sono fondamentali per lo sviluppo software moderno. Permettono agli sviluppatori di usare dati, risorse e servizi già esistenti senza dover creare tutto da zero. Tuttavia, usare le API può essere complicato. Spesso richiedono diversi Parametri per funzionare correttamente e capire quali siano può essere una seccatura per gli utenti.

Questa discussione si concentra su come rendere più facile per gli utenti imparare e fare Debugging delle API. Abbiamo creato uno strumento speciale chiamato "API workbench". Questo strumento aiuta gli utenti a comprendere l'uso delle API e risolvere problemi.

La Sfida di Imparare le API

Molte aziende offrono API al pubblico, creando un ampio ventaglio di opzioni. Per esempio, una azienda ha oltre 15.000 API disponibili online. Nonostante la disponibilità di queste risorse, gli utenti spesso faticano a "imparare" come usarle efficacemente. Il divario tra i creatori di API e gli utenti può rendere difficile il successo nelle chiamate API, causando frustrazione.

Per affrontare questo problema, abbiamo costruito un workbench che include strumenti utili. Gli utenti possono trovare documentazione API, strumenti di debugging e persino strumenti per generare librerie di codice. Anche con tutto questo supporto, gli utenti affrontano comunque un basso tasso di successo quando cercano di chiamare le API.

Analizzando come gli utenti interagiscono con il workbench, abbiamo scoperto che spesso leggono la documentazione e poi passano al debugging delle API. Questo modello suggerisce che il processo di debugging ha bisogno di miglioramenti. Il nostro obiettivo principale qui è aumentare il tasso di successo nel debugging delle API.

Contributi Chiave

  1. Abbiamo sviluppato un workbench che aiuta gli utenti a imparare e usare le API e abbiamo deciso di condividere i dati che genera.
  2. Abbiamo raccolto informazioni necessarie da molti log di chiamate API. Questo ci consente di ridurre la complessità di alcuni parametri.
  3. Abbiamo creato un metodo per identificare le Connessioni tra le API per assicurarci che possano funzionare insieme senza problemi.
  4. Abbiamo ideato un modo per prevedere il risultato di una chiamata API prima che accada, risparmiando tempo agli utenti nel debugging.

Comprendere i Vincoli dei Parametri

Le API hanno regole riguardo ai parametri; non tutti sono sempre fissi o opzionali. Alcuni parametri possono dipendere da altri. Conoscere queste regole può aiutare gli utenti a integrare meglio le API e fare meno errori. Consideriamo due livelli di queste regole:

  • Livello API: Questo riguarda come i diversi parametri possono combinarsi e come il loro ordine influisce sull'uso.
  • Livello Parametro: Questo include quali parametri sono indispensabili, quali sono opzionali e l'intervallo dei valori numerici.

Estrazione di Esempi

Per usare le API in modo efficace, è fondamentale fornire valori di esempio per i parametri. Il modo migliore per ottenere questi esempi è controllare le chiamate API precedenti. Tuttavia, scegliere semplicemente a caso tra diversi valori non è sufficiente. Gli esempi dovrebbero riflettere modelli di utilizzo comuni.

Proponiamo un metodo per individuare tratti comuni in un mare di esempi di parametri. Il nostro approccio si svolge in due passaggi:

  1. Mapper: Nel primo passaggio, estraiamo caratteristiche locali dai valori dei parametri. Cerchiamo sequenze comuni e convertiamo valori specifici in termini più generali.

  2. Reducer: In questo step, combiniamo i risultati locali per stabilire modelli più ampi nei parametri.

Lavorare con le Sequenze di Parametri

Quando si usa un'API, l'ordine dei parametri può influenzare le prestazioni. Ad esempio, alcune API potrebbero richiedere input in una sequenza specifica. Possiamo analizzare e categorizzare queste sequenze in base a quanto spesso vengono usate.

Filtrando i parametri irrilevanti e ordinando quelli utili, possiamo ottenere una migliore comprensione su come usarli efficacemente.

Parametri di Enumerazione

I parametri di enumerazione aiutano a semplificare il processo di input fornendo un elenco di opzioni. Con abbastanza risorse, possiamo facilmente estrarre queste opzioni dai dati esistenti. Se le risorse sono limitate, possiamo lavorare con un set più piccolo ed estrarre i valori necessari nel tempo.

Connessioni tra API

A volte, l'input di un'API deriva dall'output di un'altra. Questa relazione può essere vantaggiosa per gli utenti. Mappando queste connessioni, aiutiamo gli utenti a vedere quali API possono lavorare insieme.

Per trovare queste connessioni, noi:

  1. Identifichiamo quali parametri di output di un'API sono anche necessari come input per un'altra.
  2. Classifichiamo queste connessioni per raccomandare coppie di API utili agli utenti.

Prevedere gli Errori Prima che Accadano

Anticipare i problemi prima di fare una chiamata API può risparmiare molti guai. Abbiamo semplificato questo problema categorizzando i possibili risultati in diversi codici di errore e un esito riuscito.

Per il nostro metodo, trattiamo i dati come segnali e usiamo algoritmi specializzati per analizzarli. Questo ci consente di prevedere possibili errori basati su input passati.

Componenti Principali del Modello di Previsione

La spina dorsale del nostro sistema di previsione si basa su un modulo speciale che analizza le sequenze di input. Analizzando questi input con algoritmi specifici, possiamo derivare modelli che rendono più facile identificare potenziali problemi.

L'uso di pooling, che aiuta a comprimere i dati, ci consente di creare modelli più approfonditi per previsioni migliori. Il nostro sistema funziona in modo simile ad altri network, rendendolo più affidabile ed efficiente.

Codifica dei Caratteri

I nostri modelli devono lavorare con sequenze di caratteri. Per fare ciò in modo efficace, trasformiamo i caratteri in un formato specifico. Utilizziamo un metodo chiamato one-hot encoding, che consente ai dati di adattarsi a una dimensione standardizzata. I caratteri non utilizzati vengono ignorati, mentre quelli che non corrispondono sono trattati come valori zero.

Il set di caratteri che utilizziamo include lettere, numeri e simboli, coprendo così un'ampia gamma di input.

Conclusione

Lo sforzo per migliorare l'uso delle API va oltre il semplice fornire strumenti; implica comprendere il comportamento degli utenti e semplificare processi complessi. Raffinando come interagiamo con i parametri, facendo previsioni e collegando le API, puntiamo a migliorare l'esperienza complessiva degli utenti. In definitiva, rendere le API più facili da usare può portare a uno sviluppo più veloce e meno mal di testa per tutti coinvolti.

Fonte originale

Titolo: Reduce API Debugging Overhead via Knowledge Prepositioning

Estratto: OpenAPI indicates a behavior where producers offer Application Programming Interfaces (APIs) to help end-users access their data, resources, and services. Generally, API has many parameters that need to be entered. However, it is challenging for users to understand and document these parameters correctly. This paper develops an API workbench to help users learn and debug APIs. Based on this workbench, much exploratory work has been proposed to reduce the overhead of learning and debugging APIs. We explore the knowledge, such as parameter characteristics (e.g., enumerability) and constraints (e.g., maximum/minimum value), from the massive API call logs to narrow the range of parameter values. Then, we propose a fine-grained approach to enrich the API documentation by extracting dependency knowledge between APIs. Finally, we present a learning-based prediction method to predict API execution results before the API is called, significantly reducing user debugging cycles. The experiments evaluated on the online system show that this work's approach substantially improves the user experience of debugging OpenAPIs.

Autori: Shujun Wang, Yongqiang Tian, Dengcheng He

Ultimo aggiornamento: 2023-03-23 00:00:00

Lingua: English

URL di origine: https://arxiv.org/abs/2304.06692

Fonte PDF: https://arxiv.org/pdf/2304.06692

Licenza: https://creativecommons.org/publicdomain/zero/1.0/

Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.

Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.

Altro dagli autori

Articoli simili