2015-12-03 12 views
14

Trovo spesso di essere insoddisfatto dell'ordinamento e dell'espressività delle ricerche su https://www.npmjs.com/. Immagino che ci dovrebbe essere un modo per interrogare programmaticamente il server usando https://api.npmjs.org/ o http://registry.npmjs.org/. Ma come? Dov'è la documentazione?Registro di query npmjs via api

(O ci sono pacchetti di nodi per facilitare?) So che SO non riguarda consigli sugli strumenti o sui pacchetti, quindi forse non dovrei chiedere a questo proposito, ma se ci fosse qualche strumento, potrei probabilmente leggere l'API da quello.)

risposta

16

Ovviamente c'è almeno uno strumento progettato per comunicare con quel registro, e quello è lo strumento da riga di comando npm. Ad esempio, il suo search inizia aggiornando una copia cache locale dell'indice, filtrandola. In update-index si può leggere che l'URL che termina con /-/all è apparentemente speciale. E infatti, aggiungendo che a registry.npmjs.org (volutamente non formattato come collegamento) verrà recuperato un file 125M che potrebbe essere troppo per il tuo browser. Fortunatamente la versione cache è archiviata disponibile in ~/.npm/registry.npmjs.org/-/all/.cache.json. Da lì si può leggere un elenco di tutti i pacchetti nown. Si potrebbe quindi continuare a interrogare ciascuno di questi pacchetti in modo più dettagliato.

Il fatto che npm search non utilizzi apparentemente uno schema più elaborato suggerisce che non ci sia molto di una API sul lato server qui.

Ricerca sul Web per le pagine che menzionano api.npmjs.org Ho trovato che il download counts può essere recuperato da lì. Tutti gli altri documenti che ho trovato utilizzano questa singola struttura.

Alla ricerca di alternative, ho anche imbattuto in npmsearch.com che offre alcune strutture di ricerca più versatile e ha a somewhat documented API.

+1

https://registry.npmjs.org/-/all solo restituisce '{ "messaggio": "deprecato"}' al giorno d'oggi. Suggerisco di non accettare questa risposta. –

1

È è possibile utilizzare il modulo nodo API-NPM interroga direttamente il registro di NPM e si può ottenere tutti gli attributi di un modulo e scaricare stat di qualsiasi modulo di qualsiasi intervallo di tempo https://www.npmjs.com/package/api-npm

+0

Questo sembra un buon inizio, ma ci sono molti più dati che si possano desiderare. Stai pensando di migliorare il pacchetto? –

5

recenty trovato davvero un buon NPM sito interrogazione https://npms.io. Hanno anche sistemi di punti di qualità per ogni pacchetto sulla base di vari dati. ma i dati sarebbero da pochi giorni dietro
API Doc: https://api-docs.npms.io

Problemi correlati