Restful Web API's gebruiken in Python

Deze tutorial zal u kennis laten maken met web-API's en u leren hoe u de Python-bibliotheekverzoeken kunt gebruiken om informatie in web-API's op te halen en bij te werken. Je leert ook hoe je kunt omgaan met de Twitter API als een werkend voorbeeld.

Inleiding tot web-API's

Een API (Application Programming Interface) is een raamwerk voor het bouwen van HTTP-services die door een grote verscheidenheid aan clients kunnen worden gebruikt. Web-API's gebruiken HTTP-protocol om verzoeken tussen de client en de webserver af te handelen.

Enkele van de meest voorkomende API's waarmee ontwikkelaars hun infrastructuur kunnen integreren en gebruiken, zijn onder andere:

  1. Google API's
  2. Twitter API
  3. Amazon API
  4. Facebook API

Een van de belangrijkste redenen om een ​​API te gebruiken in tegenstelling tot andere statische gegevensbronnen, is omdat deze in realtime is. De Twitter API die we gaan gebruiken, haalt bijvoorbeeld real-time gegevens op van het sociale netwerk.

Een ander voordeel is dat de gegevens blijven veranderen, dus als u het met tussenpozen zou downloaden, zou het tijdrovend zijn.

De Verzoeken bibliotheek gebruiken

Als u een API wilt gebruiken, moet u de Python-bibliotheekverzoeken installeren. Verzoeken is een HTTP-bibliotheek in Python waarmee u HTTP-verzoeken in Python kunt verzenden.

Installeer verzoeken

Typ in uw terminal:

pip install requests

Om te controleren of de installatie succesvol is, geeft u de volgende opdracht in uw Python-interpreter of de terminal:

importeer verzoeken

Als er geen fouten zijn, is de installatie geslaagd.

Informatie ophalen van een web-API

De GET-methode wordt gebruikt om informatie van een webserver te krijgen. Laten we eens kijken hoe we een GET-verzoek kunnen doen om de openbare tijdlijn van GitHub te krijgen.

We gebruiken de variabele req om het antwoord van ons verzoek op te slaan.

importeer verzoeken req = requests.get ('https://github.com/timeline.json')

Nu we een verzoek hebben ingediend bij de GitHub-tijdlijn, laten we de codering en de inhoud van het antwoord ophalen.

import verzoeken req = requests.get ('https://github.com/timeline.json') req.text u '"message": "Hallo daar, vreemdeling op reis. Als u dit leest dan heeft u waarschijnlijk niet gedaan \ U2019t ziet onze blogpost een paar jaar geleden en kondigt aan dat deze API zou verdwijnen: http://git.io/17AROg Angst niet, u zou in plaats daarvan moeten kunnen krijgen wat u nodig hebt van de glimmende nieuwe Events API. "," documentation_url ":" https://developer.github.com/v3/activity/events/#list-public-events "
importeer verzoeken req = requests.get ('https://github.com/timeline.json') req.encoding 'utf-8'

Verzoeken hebben een ingebouwde JSON-decode die u kunt gebruiken om de reactie van een verzoek in JSON-indeling te krijgen.

importeer aanvragen import json req = requests.get ('https://github.com/timeline.json') req.json () u'documentation_url ': u'https: //developer.github.com/v3/activity / events / # list-public-events ', u'message': u'Hello daar, vreemdeling op reis. Als je dit leest, dan heb je onze blog waarschijnlijk een paar jaar geleden nog niet gezien en aangekondigd dat deze API zou verdwijnen: http://git.io/17AROg Angst niet, je zou in staat moeten zijn om te krijgen wat je nodig hebt van de glanzende nieuwe Events API in plaats. '

Informatie over de web-API maken en bijwerken

De POST- en PUT-methoden worden beide gebruikt om gegevens te maken en bij te werken. Ondanks de overeenkomsten, is het belangrijk op te merken dat het gebruik van een POST-verzoek om gegevens bij te werken twee vermeldingen in het gegevensarchief oplevert als twee identieke artikelen worden ingediend.

Gegevens maken (POST-aanvraag):

r = requests.post ('http://127.0.0.1/api/v1/add_item', data = 'task': 'Winkelen')

Gegevens bijwerken (PUT-verzoek):

r = requests.put ('http://127.0.0.1/api/v1/add_item', data = 'task': 'Shopping at 2')

Werken met de Twitter REST API

In deze sectie gaat u leren hoe u Twitter API-referenties kunt verkrijgen, kunt verifiëren bij de Twitter API en kunt communiceren met de Twitter API met behulp van Python. 

Je kunt ook informatie van openbare Twitter-accounts ophalen, zoals tweets, volgers, enzovoort.

Authenticatie met Twitter

We moeten authenticeren met de Twitter API voordat we ermee kunnen communiceren. Volg hiervoor de volgende stappen:

  1. Ga naar de Twitter Apps-pagina.
  2. Klik op Maak een nieuwe app (je moet ingelogd zijn op Twitter om toegang te krijgen tot deze pagina). Als je geen Twitter-account hebt, maak er dan een aan.

3. Maak een naam en beschrijving voor uw app en een tijdelijke aanduiding voor de website.

4. Zoek de Toetsen en toegangstokens Tab en maak je toegangstoken.

5. U moet kennis nemen van de Toegangstoken en Toegang token geheim aangezien u ze nodig heeft voor het authenticatieproces.

6. U moet ook kennis nemen van de Gebruikers sleutel en Consumentengeheim.

Er zijn een paar bibliotheken die we kunnen gebruiken om toegang te krijgen tot de Twitter API, maar we gaan de python-twitterbibliotheek gebruiken in deze tutorial.

Installeer python-twitter

Gebruik python-twitter om:

$ pip installeer python-twitter 

De Twitter API wordt ontsloten via de twitter.Api klasse, dus laten we de klas maken door onze tokens en geheime sleutels door te geven:

import twitter api = twitter.Api (consumer_key = [consumer key], consumer_secret = [consumer secret], access_token_key = [access token], access_token_secret = [access token secret])

Vervang uw referenties hierboven en zorg ervoor dat ze tussen aanhalingstekens staan, dat wil zeggen consumer_key = "xxxxxxxxxx", ...)

Querying Twitter

Er zijn veel interactiemethoden met de Twitter API, waaronder:

>>> api.PostUpdates (status) >>> api.PostDirectMessage (gebruiker, tekst) >>> api.GetUser (gebruiker) >>> api.GetReplies () >>> api.GetUserTimeline (gebruiker) >>> api .GetHomeTimeline () >>> api.GetStatus (status_id) >>> api.DestroyStatus (status_id) >>> api.GetFriends (gebruiker) >>> api.GetFollowers ()

Om gegevens van Twitter te krijgen, gaan we een API-aanroep doen met behulp van de api object dat we hierboven hebben gemaakt.

We zullen het volgende doen:

  1. Maak een gebruiker variabele en stel deze in op een geldige Twitter-handle (gebruikersnaam).
  2. Bel de GetUserTimeline () methode op de api object en geef de volgende argumenten door.

  • een geldige Twitter-handle
  • het aantal tweets dat u wilt ophalen (tellen)
  • een vlag om retweets uit te sluiten (dit wordt gedaan met behulp van include_rts = false)

Laten we de nieuwste tweets uit de tijdlijn van Envato Tuts + Code halen, met uitzondering van retweets.

import twitter api = twitter.Api (consumer_key = "xxxxxxxxxxxx", consumer_secret = "xxxxxxxxxxxxxx", access_token_key = "314746354-xxxxx", access_token_secret = "xxxxxx") user = "@TutsPlusCode" statussen = api.GetUserTimeline (schermnaam = gebruiker, count = 30, include_rts = False) voor s in statussen: print s.text 

De GetUserTimeline () methode retourneert een lijst met de laatste 30 tweets, dus we doorlopen de lijst en drukken de belangrijkste informatie (inhoud) van elke tweet af.

Hier zijn 6 dingen die Yarn de beste #JavaScript-pakketbeheerder maken. https://t.co/N4vzIJmSJi Lees meer over staafdiagrammen met deel 3 van deze serie over het maken van interactieve diagrammen met Plotly.js. https://t.co/lyKMxSsicJ Ontdek wat er nieuw is met Git-ondersteuning in Xcode 9. https://t.co/7gGu0PV1rV Zo kunt u digitale handtekeningen maken met Swift. https://t.co/kCYYjShJkW Ontdek in deze snelle tip hoe je Atom als Git GUI kunt gebruiken. https://t.co/8rfQyo42xM Bekijk deze 12 nuttige WordPress-plug-ins voor paginalay-outs. https://t.co/T57QUjEpu5 Meer informatie over lijndiagrammen in deel 2 van onze serie over het maken van interactieve diagrammen met Plotly.js. https://t.co/nx51wOzSkF Grijp een aantal fantastische freebies met onze speciale 10e verjaardagaanbieding, https://t.co/AcIGTiC2re In dit nieuwste in onze serie over het coderen van een real-time app met NativeScript: pushmeldingen. https://t.co/qESFVGVF4L Aan de slag met end-to-end testen in Angular met behulp van de gradenboog. https://t.co/TWhQZe7ihE Meer informatie over het bouwen van een taken-API met Node, Express en MongoDB. https://t.co/R4DvRYiM90 Wat is de Android-lifecycle? https://t.co/VUHsucaC1X Leer alles over objectgeoriënteerd programmeren met JavaScript. https://t.co/bI7ypANOx3 Veel plezier met functies in dit nieuwste in onze serie over Kotlin. https://t.co/r2f2TzA5lM U kunt als volgt uw JavaScript-code robuust maken met Flow. https://t.co/rcdjybKL8L Bouw uw eigen taken-API met Node en Restify. https://t.co/gQeTSZ6C5k Ga als volgt te werk om uw view controllers op dieet te zetten met MVVM. https://t.co/oJqNungt1O Meer informatie over het indienen van uw nieuwe iOS-app bij de App Store. https://t.co/JQwsKovcaI Deze gids is de perfecte plaats om je vaardigheden te ontwikkelen en te beginnen met het schrijven van plug-ins in Go. https://t.co/68X5lLSNHp Bekijk hoe u componenten in Angular kunt testen met behulp van Jasmine. https://t.co/V5OTNZgDkR Leer hoe u uw eerste #WordPress-plug-in kunt bouwen in deze geweldige nieuwe cursus. https://t.co/695C6U6D7V In dit nieuwste deel in onze reeks van Android-architectuurcomponenten: LiveData. https://t.co/gleDFbqeAi Neem een ​​duik in het Go-type-systeem. https://t.co/AUM7ZyanRO Kijk eens naar serverloze logica met realm-functies. https://t.co/aYhfeMgAZc Deel 4 van de React-crashcursus voor beginners is uit! https://t.co/aG5NEa6yG9 Meer informatie over sociale aanmelding en Firebase in deze nieuwe toevoeging aan de serie. https://t.co/oL5z0krQD3 Een blogapp maken met React part 6 is uit! Tags https://t.co/OzUaPQEX8E Wat is GenServer en waarom zou u erom moeten geven? https://t.co/EmQeTBggUK Bekijk deel 3 in React crash course voor beginnersseries. https://t.co/dflLCUqncO Lees meer over pakketten en basisfuncties in deze toevoeging aan onze Kotlin from scratch-serie. https://t.co/JAo2ckSgZS 

Om volgers op te halen, gebruiken we de GetFriends () methode.

import twitter api = twitter.Api (gebruikerscode = "ftFL8G4yzQXUVzbUCdxGwKSjJ", consumer_secret = "KxGwBe6GlgSYyC7PioIVuZ5tFAsZs7q1rseEYCOnTDIjulT0mZ", access_token_key = "314746354-Ucq36TRDnfGAxpOVtnK1qZxMfRKzFHFhyRqzNpTx", access_token_secret = "7wZ1qHS0qycy0aNjoMDpKhcfzuLm6uAbhB2LilxZzST8w") user = "@TutsPlusCode" vrienden = api.GetFriends (screen_name = gebruiker) voor vrienden in vrienden: print friend.name

uitgang

Derek Herman Cyan Ta'eed Dropbox Stoyan Stefanov The JavaScript Ninja Dan Wellman Brenley Dueck Dave Ward Packt Karl Swedberg Envato Tuts + Web Dev_Tips Vahid Ta'eed Jarel Remick Envato Dev. Team 🖥 Drew Douglass 📈 Cameron Moll SitePoint John Resig Skellie Chris Coyier Envato Tuts + Envato Tuts + Design Collis

Conclusie

Twitter's API kan in grote mate worden gebruikt in data-analyse. Het kan ook worden gebruikt in complexe big data-problemen en het verifiëren van apps. Lees meer over de Twitter API op de Twitter-ontwikkelaarswebsite.

.