Domanda

Così adesso ho sviluppato un'applicazione che sto cercando di scrivere un'API per. L'applicazione sarà idealmente restituire stringhe indietro per l'utente. L'API non può "restituire" i dati nel normale programmazione senso perché ci può essere una quantità sconosciuta di stringhe vengono inviati dall'applicazione. Sui sistemi Unix è una cattiva idea di passare questo dati all'utente attraverso un tubo di nome? Ho avuto problemi a trovare tutte le informazioni sui dettagli della creazione di API. Grazie per qualsiasi aiuto.

È stato utile?

Soluzione

  

L'API non può "ritorno" dei dati nel senso normale di programmazione perché ci può essere una quantità sconosciuta di stringhe di essere inviati dall'applicazione. Sui sistemi Unix è una cattiva idea di passare questo dati all'utente attraverso un tubo chiamato?

In Unix è comune per un programma per produrre i suoi dati, come più dati che vuole, forse un sacco di dati, scrivendo i dati a 'standard output'. L'utente può pipe questa uscita th schermo o in un file, o tubo come input ad un altro programma (che potrebbe, per esempio, filtrare i dati).

  

Ho avuto problemi a trovare tutte le informazioni sui dettagli della creazione di API.

http://www.faqs.org/docs/artu/ è abbastanza famoso, FWIW: http://www.faqs.org/docs/artu/ ch07s02.html # idraulico dice qualcosa (con qualche esempio) sull'utilizzo di tubi, di dati in uscita da un programma in un altro programma.

Altri suggerimenti

dipende dall'applicazione. Se si tratta di uno strumento a riga di comando di breve durata, quindi leggere-da-stdin / write-to-stdout modello funziona perfettamente. grep / sed / awk / perl sarebbe preso cura di post-elaborazione dei dati. Se si tratta di un demone, allora FIFO, o una presa di corrente potrebbe essere una buona idea, anche se si potrebbe pensare a una sorta di protocollo client-server su quel flusso. Andando un passo avanti a fornire una libreria che sa che il protocollo e dà applicazione scrittore un insieme coerente di funzioni di parlare con la vostra applicazione potrebbe essere un vero e proprio API. Questo è il classico client-server, è così che la maggior parte del lavoro di database, per esempio.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top