ForHosting KIT · Strumenti per sviluppatori

Analizzi gli argomenti CLI mediante una specifica

Trasformi un elenco grezzo di argomenti della riga di comando in un oggetto prevedibile, senza distribuire le regole di analisi in tutta l’applicazione.

● BetaGratis · nel tuo browser
Usalo da WebAPIEmailTelegramApp presto

Funziona nel tuo browser: gratis, senza registrazione, i file non escono dal tuo dispositivo.

Fornisca gli elementi e una specifica compatta che definisca ogni flag booleano e ogni opzione che richiede un valore. L’analizzatore associa gli alias ai nomi canonici, conserva gli argomenti posizionali, identifica i flag sconosciuti, accetta le opzioni lunghe con il segno di uguale e interrompe l’interpretazione dopo il separatore convenzionale con due trattini. Specifiche errate, argomenti ripetuti e opzioni prive del valore obbligatorio generano errori di input chiari.

Descriva l’interfaccia a riga di comando come dati

Parta dagli elementi esattamente come vengono forniti dall’ambiente di esecuzione, dopo aver escluso i nomi dell’eseguibile e dello script. Definisca quindi ogni argomento accettato nella specifica. Ciascuna voce contiene un nome canonico, uno o più alias e un tipo. Usi flag per un interruttore la cui presenza indica vero, per esempio <code>--verbose</code>. Usi option quando la forma deve essere seguita da un valore, come <code>--output result.json</code>. Gli alias consentono alle forme breve e lunga di valorizzare la stessa proprietà: <code>-o</code> e <code>--output</code> possono quindi produrre <code>output</code>. I nomi canonici contengono lettere minuscole, cifre e trattini bassi, così l’oggetto restituito è utilizzabile senza un’ulteriore rinomina. Gli alias devono iniziare con uno o due trattini. L’analizzatore rifiuta nomi canonici e alias duplicati, perché tali collisioni renderebbero il risultato dipendente dall’ordine delle dichiarazioni. Imposti <code>multiple</code> solo quando l’interfaccia prevede la ripetizione; i valori vengono allora restituiti nell’ordine di incontro.

Comprenda l’analisi degli elementi e l’output

L’output separa valori riconosciuti, elementi posizionali e flag sconosciuti. I flag riconosciuti diventano veri sotto il rispettivo nome canonico, mentre le opzioni memorizzano l’elemento successivo. Un’opzione lunga può anche includere il valore nello stesso elemento, come <code>--format=json</code>. La corrispondenza è esatta: i gruppi brevi come <code>-abc</code> non vengono espansi, a meno che l’intera forma sia dichiarata come alias. Ogni elemento sconosciuto che inizia con un trattino viene aggiunto a <code>unknown_flags</code>, permettendoLe di rifiutarlo, mostrare un avviso o inoltrarlo intenzionalmente. Gli altri elementi sconosciuti diventano valori posizionali. Un <code>--</code> isolato termina l’elaborazione delle opzioni e ogni elemento successivo diventa posizionale, anche se inizia con un trattino. Questa convenzione rende inequivocabili nomi come <code>-draft.txt</code>. L’analizzatore non crea valori predefiniti e non converte stringhe in numeri, poiché tali criteri spettano all’applicazione e potrebbero nascondere errori. Il risultato è deterministico e conserva l’ordine.

Gestisca con sicurezza valori mancanti e ripetizioni

Ogni voce di tipo option richiede un valore non vuoto ogni volta che compare uno dei suoi alias. Se l’alias è l’ultimo elemento, precede il marcatore di fine opzioni oppure è seguito da un altro elemento che assomiglia a un flag, l’analisi termina con un errore di input che nomina l’alias responsabile. La stessa regola vale per una forma allegata vuota come <code>--output=</code>. Questo comportamento rigoroso impedisce che un flag successivo venga consumato silenziosamente come dato e affronta direttamente uno degli errori più dannosi nell’analisi dei comandi. Un trattino isolato può comunque essere usato come valore, utile per i programmi che rappresentano l’input o l’output standard con <code>-</code>. Per impostazione predefinita, anche la ripetizione di un argomento riconosciuto causa un errore. Dichiari <code>multiple: true</code> quando la ripetizione è valida, per esempio per più percorsi di inclusione o etichette; il nome canonico conterrà sempre un elenco. I flag sconosciuti vengono segnalati senza causare un errore, lasciando a Lei la gestione della compatibilità e dell’inoltro.

Convalidi un wrapper CLI

Analizzi le opzioni proprie del wrapper e segnali i flag non supportati prima di avviare il processo racchiuso.

Normalizzi le opzioni brevi e lunghe

Associ alias come -o e --output a un’unica proprietà stabile per semplificare la logica dell’applicazione.

Crei anteprime e test dei comandi

Converta elenchi di elementi in fixture strutturate e deterministiche senza eseguire comandi né accedere a una shell.

Quanto costa?

Ogni richiesta API costa $0.002. La versione nel browser esegue localmente la stessa logica deterministica.

I flag sconosciuti vengono rifiutati?

No. Vengono restituiti in unknown_flags affinché Lei possa rifiutarli, segnalarli o inoltrarli.

È supportata la sintassi --name=value?

Sì, per le opzioni lunghe che richiedono un valore. Un valore vuoto dopo il segno di uguale causa un errore.

Vengono combinati flag brevi come -abc?

No. Gli alias corrispondono a elementi interi; -abc è riconosciuto solo se la specifica dichiara esattamente tale alias.

Cosa accade dopo due trattini isolati?

L’analisi delle opzioni termina e tutti gli elementi rimanenti vengono restituiti come argomenti posizionali.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

POSThttps://api.kit.forhosting.com/dev2/cli-arg-parse-spec

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

curl -X POST https://api.kit.forhosting.com/dev2/cli-arg-parse-spec \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"args":["--verbose","--output=result.json","input.txt"],"spec":[{"name":"verbose","aliases":["--verbose","-v"],"kind":"flag"},{"name":"output","aliases":["--output","-o"],"kind":"option"}]}'
{
  "args": [
    "--verbose",
    "--output=result.json",
    "input.txt"
  ],
  "spec": [
    {
      "name": "verbose",
      "aliases": [
        "--verbose",
        "-v"
      ],
      "kind": "flag"
    },
    {
      "name": "output",
      "aliases": [
        "--output",
        "-o"
      ],
      "kind": "option"
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev2.cli_arg_parse_spec",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Leggi la documentazione completa del KIT →