2012-05-14 9 views
11

Sto costruendo un'applicazione Django che deve interagire con un'API RESTful di terze parti, apportando vari GET, PUT, ecc. A tale risorsa. Quello che sto cercando è un buon modo per rappresentare quell'API all'interno di Django.Consumo di un'API RESTful con Django

La soluzione più ovvia, ma forse meno elegante, sembra essere la creazione di un modello che ha vari metodi di mappatura alle query del servizio web. D'altra parte, sembra che l'utilizzo di qualcosa come un DB backend personalizzato possa offrire maggiore flessibilità e una migliore integrazione nell'ORM di Django.

Avvertenza: questo è il primo vero progetto che ho fatto con Django, quindi è possibile che manchi qualcosa di ovvio qui.

risposta

9

La libreria requests semplifica la scrittura di un utente API REST. Esiste anche una libreria Python denominata slumber, che viene creata sopra requests, con lo scopo esplicito di utilizzare API REST. Quanto bene ciò funzionerà per te probabilmente dipende da quanto RESTful sia realmente l'API.

+0

'dormire 'è molto semplice, non dà molto per il livello di astrazione. Ma in alcuni casi potrebbe essere sufficiente. – Tadeck

+0

Hmm, sembra che le richieste non supportino l'utilizzo dell'autenticazione basata su cert. Sembra che dovrò scrivere qualcosa io stesso usando httplib. – devights

+0

Sembra che le richieste ora supportino l'autenticazione basata su cert? Il parametro cert può essere un percorso String a ssl client cert file (.pem), o una coppia Tuple, ('cert', 'chiave') - disponibile su richieste e sessioni. – Chris

1

Effettuare le chiamate REST utilizzando l'urllib incorporato (un po 'goffo ma funzionale) e avvolgere l'interfaccia in una classe, con un metodo per ciascuna chiamata remota. La tua classe può quindi tradurre da e verso tipi di python nativi. Questo è quello che farei comunque!

Problemi correlati