Artikel, der eine Person sein kann, die den Mechanismus der API versteht und beherrscht (mit Python-Code)

Einführung

Ich studiere Programmierung und was ist API? Hast du das jemals gefühlt?

** "Was können Sie überhaupt mit der API tun?" ** ** "Wie benutzt du das?" **

Um diese Probleme zu lösen, ist es gut, den allen APIs gemeinsamen Mechanismus zu verstehen. Ich zeige Ihnen den spezifischen Python-Code. Wenn Sie mit dem Lesen fertig sind, sollten Sie mit der Verwendung der API vertraut sein.

Die Kapitelstruktur ist wie folgt.

--Was ist API (Vorteile der Verwendung von API) --Verstehen der API

※※ Verschiedene Informationen werden auch auf SNS veröffentlicht. Wenn Sie also der Meinung sind, dass es in Ordnung ist, den Artikel zu lesen Ich wäre Ihnen dankbar, wenn Sie Twitter-Konto "Saku731" folgen könnten. ※※

Was ist API (Vorteile der Verwendung von API)

API steht für "** A ** Anwendung ** P ** Programmierung ** I ** Schnittstelle". Die wörtliche Übersetzung lautet wie folgt.

--Anwendung

Der größte Vorteil, den die API benötigt, ist, etwas tiefer zu gehen "** Leihen Sie nützliche Funktionen, die von anderen Personen erstellt wurden, an den von Ihnen erstellten Webdienst aus **" Ich denke das ist alles.

Mit anderen Worten, Sie müssen nicht hart arbeiten, um sich von Grund auf neu zu entwickeln. Welches würden Sie beispielsweise bei der Entwicklung einer EC-Site wählen?

--Erstellen Sie Ihre eigene ** Kreditzahlungsfunktion ** --Verwenden Sie die vom Kartenunternehmen bereitgestellte ** Kreditzahlungs-API **

Auf diese Weise ist die Option ** "Mach es nicht selbst" ** der größte Vorteil der API.

Verstehen Sie die API

Nachdem Sie die Vorteile der API kennen, wollen wir verstehen, wie sie funktioniert. Es sind drei Haupttypen von Wissen erforderlich.

―― 1) Wie das Web funktioniert ―― 2) HTTP-Anfrage ―― 3) HTTP-Antwort

1) Wie das Web funktioniert

Das Internet, das ich gelegentlich benutze, wird dank des Web ermöglicht. Das Web ist ein "** Mechanismus zum Senden aller Arten von Daten wie Texte und Bilder im Internet **".

Sie müssen also das Web verstehen, um einen Webdienst auszuleihen, der von einer anderen Person mithilfe der API erstellt wurde. Um das Web zu verstehen, halten wir die folgenden drei gedrückt.

Es ist so, wenn man es in Sätzen organisiert.

Was ist das Web? "Nach dem Kommunikationsversprechen von HTTP" "Zu und von dem durch die URL angegebenen Ort (Server)" Ein Mechanismus zum "Austausch von Hypertext (Informationen)".

Ich muss viele Bücher lesen, um das Web im Detail zu verstehen. Es reicht zu verstehen, dass es sich um "** Technologie zum Austausch von Informationen mit dem durch URL ** angegebenen Server **" handelt.

Die API ist ein Mechanismus, der den Informationsaustausch zwischen ** Ihrem eigenen Webdienst ** und einem Webdienst (Server) ** erleichtert, der von einer anderen Person erstellt wurde, die diese Webtechnologie verwendet.

Um die API konkret nutzen zu können, muss die vom Web übernommene HTTP (Communication Convention) verwendet werden. Es gibt zwei Arten: "Informationen an die andere Partei senden ** HTTP-Anforderung **" und "Informationen von der anderen Partei empfangen ** HTTP-Antwort **". Lassen Sie uns diese später verstehen.

2) HTTP-Anfrage

Die erste ist eine HTTP-Anforderung, mit der Sie Daten an die andere Partei senden. Es ist ein Prozess, eine Anfrage wie "Bitte lassen Sie mich die Funktion verwenden" ** an einen Webdienst zu senden, der von einer anderen Person über die API erstellt wurde.

Die API-Verwendung sieht für jeden Webdienst unterschiedlich aus, sie haben jedoch eine gemeinsame Grundlage. Die folgenden Informationen sollten bei der Verwendung einer API gemeinsam erstellt werden.

Diese ** Hauptelemente sind allen APIs ** gemeinsam, es gibt jedoch Unterschiede in den Details. Überprüfen Sie den erforderlichen Inhalt in den von jedem Dienst veröffentlichten "** API-Spezifikationen **".

Wenn Sie eine API verwenden, die das Wetter in jedem Bereich abrufen kann, werden die Informationen auf diese Weise organisiert. Es ist nicht notwendig, sich dessen zuerst bewusst zu sein, da in der API-Spezifikation geschrieben ist, ob POST oder GET verwendet werden soll.

Neben POST und GET gibt es Methoden namens PUT und DELETE. Es wird grob wie folgt erklärt.

--GET: Daten abrufen --POST: Neue Daten erstellen --PUT: Daten aktualisieren --DELETE: Daten löschen

Wettervorhersage-API (für POST-Methode)

Das Beispielprogramm ist wie folgt.

#Bibliothek importieren
import requests

#Informationen zum Herstellen einer Verbindung zur API
API_Endpoint = https:/world_weather.com/api
API_Key = aaabbbccc

#Informationen, die an die API gesendet werden sollen
headers = {'Content-Type': 'application/json', 'key':API_Key}
body = {date='today', area=Tokyo}

#API-Verbindung ausführen
result = requests.post(API_Endpoint, data=json.dumps(body), headers=headers)

Wettervorhersage-API (für die GET-Methode)

Die GET-Methode wird im Allgemeinen wie folgt geschrieben, obwohl sie vom Dienst abhängt.

** ① Prinzip: Alle Informationen in den Endpunkt (URL) aufnehmen **

#Bibliothek importieren
import requests

#Informationen zum Herstellen einer Verbindung zur API ("?"Hinter"&”Um die Bedingungen zu verbinden)
API_Endpoint = https:/world_weather.com/api?Key=aaabbbccc&date='today'&area='Tokyo'

#API-Verbindung ausführen
result = requests.get(API_Endpoint)

** requests Anfragen Modulfunktion: Separate Informationen wie POST **

Diese Beschreibungsmethode ähnelt POST. Auf der Rückseite werden die Daten in derselben Form wie "(1) Prinzip" gesendet, sodass das Ergebnis dasselbe ist.

#Bibliothek importieren
import requests

#Informationen zum Herstellen einer Verbindung zur API
API_Endpoint = https:/world_weather.com/api
API_Key = aaabbbccc

#Informationen, die an die API gesendet werden sollen
headers = {'key':API_Key}
params = {date='today', area=Tokyo}

#API-Verbindung ausführen
result = requests.get(API_Endpoint, headers=headers, params=params)

3) HTTP-Antwort

Wenn Sie eine HTTP-Anfrage über die API an einen Webdienst senden, erhalten Sie eine "Antwort" mit dem Namen ** HTTP-Antwort **. Indem Sie diese "Antwort" in Ihrem eigenen Webdienst anzeigen, können Sie sich die Mühe ersparen, sich von Grund auf neu zu entwickeln.

Zum Beispiel, "** Anfrage **: Bitte sag mir das Wetter. Heute Japan, Tokio “

image.png

"** Antwort **: Sonnig dann bewölkt"

image.png

API-Service-Beispiel

Nachdem Sie einen Überblick über die API erhalten haben, verwenden wir den kostenlosen API-Dienst, der tatsächlich verfügbar ist.

Serviceübersicht der zu verwendenden API

Versuchen Sie es mit dem Livedoor Wetterinformationsdienst ** Weather Hacks **. Bis "Heute, morgen, übermorgen" können Sie kostenlos Wettervorhersagen für 142 Standorte in ganz Japan erhalten.

http://weather.livedoor.com/weather_hacks/webservice

image.png

Schauen Sie sich die API-Spezifikationen an

Klicken Sie auf den Link oben, um die API-Spezifikationen anzuzeigen. Die Anzahl der Artikel und Namen variiert je nach Service. Die zu bestätigende Bestellung lautet jedoch wie folgt.

  1. Was ist der API-Endpunkt?
  2. Wie erhalte ich den API-Schlüssel?
  3. POST oder GET?
  4. Was sind die Abfrageparameter?
  5. Welche Informationen sollten im Header-Body gesendet werden?

image.png

Lassen Sie uns sie in der richtigen Reihenfolge organisieren. Diesmal ist es ein kostenloser Service, also sehr einfach.

  1. ** Was ist der API-Endpunkt? ** **. http://weather.livedoor.com/forecast/webservice/json/v1
  1. ** Wie bekomme ich den API-Schlüssel? ** **. Da es keine besondere Beschreibung gibt, scheint es sich um einen Dienst zu handeln, der ohne Authentifizierung verwendet werden kann (kein API-Schlüssel erforderlich).

  2. ** POST oder GET? ** **. Dieser Dienst verwendet die ** GET ** -Methode. In dem Fall, in dem die Methode nicht angegeben ist, selbst wenn Sie sich die Spezifikationen wie dieses Mal ansehen, wird sie wie folgt bestimmt. --Wenn eine Beschreibung in Form von "Endpunkt (URL) + Abfrageparameter" verwendet werden soll: GET in vielen Fällen

  1. ** Was sind die Abfrageparameter? ** **. Es scheint, dass Sie das Gebiet (Stadt) angeben sollten, in dem Sie die Wettervorhersage erhalten möchten. Verwenden wir "Kurume: 400040" aus dem Beispiel.

  2. ** Welche Informationen soll ich im Header / Body senden? ** **. Da die GET-Methode verwendet wird, muss kein Header-Body vorbereitet werden.

Python-Codebeispiel

Nachdem Sie die Informationen haben, die Sie für Ihre Anfrage benötigen, stellen wir eine Anfrage an die API in Python.

API-Anfrage senden

Es ist in Ordnung, wenn Sie den Code kopieren, einfügen und so ausführen, wie er ist.

#Bibliothek für API-Anfrage erforderlich
import requests
#URL + Abfrageparameter
url = 'http://weather.livedoor.com/forecast/webservice/json/v1?city=400040'
#API-Anfrage senden
tenki_data = requests.get(url).json()

Die Anzeige des zurückgegebenen Ergebnisses mit "print ()" macht die Anzeige sehr schwer lesbar. Es kann nicht so verwendet werden, wie es ist, daher ist es notwendig zu verstehen, wie ** JSON-Daten ** verwendet werden.

print(tenki_data)

image.png

Überprüfen Sie die JSON-Daten der API-Antwort

Die von der API zurückgegebenen Daten liegen häufig im ** JSON-Format ** vor. Ich werde die ausführliche Erklärung weglassen, aber es ist üblich, das JSON-Format in den Wörterbuch-Typ im Teil ".json ()" zu konvertieren, der in "request.get (url) .json ()" des Codes enthalten ist, bevor er verwendet wird. Es ist ein Ziel.

Die Verwendung des Wörterbuchtyps wird in den API-Spezifikationen beschrieben.

http://weather.livedoor.com/weather_hacks/webservice

image.png

Zunächst heißt es, dass Sie den "Titel / die Überschrift" erhalten können, indem Sie im Wörterbuchtyp "title" angeben.

print('Titel:', tenki_data['title'])

image.png

Wenn Sie als Nächstes "Vorhersagen" angeben, können Sie die "Wettervorhersage für jedes Prognosedatum" abrufen. Es erfordert jedoch eine etwas komplizierte Prozedur, die dem JSON-Format eigen ist. Lassen Sie uns also den Fluss zusammenhalten.

print(tenki_data['forecasts'])

image.png

Wenn "Prognosen" angegeben wird, wird zunächst der Listentyp mit dem ersten und dem letzten in "[]" eingeschlossen angezeigt. Sie können erwarten, hier gemäß den Daten, die Sie erfassen möchten, "Heute:[0], Morgen:[1], Übermorgen [2] "anzugeben.

#Geben Sie "Heute" -Daten an
print(tenki_data['forecasts'][0])

image.png

Es war ziemlich erfrischend. Wenn Sie an diesem Punkt angelangt sind, können Sie die gewünschten Daten entsprechend Ihrem Zweck abrufen. Zeigen wir diesmal "Prognosedatum: dataLabel, Wetter: telop" an.

#Vorhersagedatum
print('Vorhersagedatum:', tenki_data['forecasts'][0]['dateLabel'])
#Wetter
print('Wetter:', tenki_data['forecasts'][0]['telop'])

image.png

Auf diese Weise wird eine Reihe von Schritten der "API-Spezifikation Check-Request-Response" ausgeführt. Sie können verschiedene andere Informationen erhalten. Probieren Sie daher verschiedene Dinge aus, indem Sie sich auf die API-Spezifikationen beziehen.

schließlich

Der Punkt, dass die Verwendung der API je nach Dienst unterschiedlich ist, ist sehr problematisch. Wenn Sie jedoch der Meinung sind, dass diesmal die folgenden APIs verwendet werden, können Sie die meisten APIs beherrschen.

** Informationen zur Verwendung der API erforderlich **

** Bestätigungsverfahren **

  1. Was ist der API-Endpunkt?
  2. Wie erhalte ich den API-Schlüssel?
  3. POST oder GET?
  4. Was sind die Abfrageparameter?
  5. Welche Informationen sollten im Header-Body gesendet werden?

Dies ist das Ende von "Wie die API funktioniert und wie sie verwendet wird". Ich hoffe, es werden nützliche Informationen für Ihre Entwicklung sein.

~~ Außerdem machen wir am Ende des Satzes für eine begrenzte Zeit "** Team Development Experience Project **". ~~ ~~ Wenn Sie interessiert sind, überprüfen Sie bitte [Application Sheet] für Details. ~~ (Zusatz) Die Frist wurde geschlossen, weil sie voll ist. Das nächste Mal ist für März 2019 geplant. Wenn Sie also informiert werden möchten, füllen Sie bitte das [[Reservierungsformular]] aus (https://forms.gle/62troSMPQv8wLitQ8).

Postscript (Ergänzende Materialien werden jederzeit hinzugefügt)

response = requests.post(API_Endpoint, data=json.dumps(body), headers=headers)
with open('response.wav', 'wb') as saveFile:
    saveFile.write(response.content)

Recommended Posts

Artikel, der eine Person sein kann, die den Mechanismus der API versteht und beherrscht (mit Python-Code)
[Python] Ein Programm, um die Anzahl der Äpfel und Orangen zu ermitteln, die geerntet werden können
Verstehen Sie die Wahrscheinlichkeiten und Statistiken, die für das Fortschrittsmanagement mit einem Python-Programm verwendet werden können
[Python] Ein Programm, das die maximale Anzahl von Spielzeugen findet, die mit Ihrem Geld gekauft werden können
[Python] Code, der zu Beginn beim Scraping als Anfänger mit Hirntod geschrieben werden kann
Spielen Sie mit dem Passwortmechanismus von GitHub Webhook und Python
Kann mit AtCoder verwendet werden! Eine Sammlung von Techniken zum Zeichnen von Kurzcode in Python!
[Python] Erstellen Sie ein Diagramm, das mit Plotly verschoben werden kann
Ich habe ein Shuffle gemacht, das mit Python zurückgesetzt (zurückgesetzt) werden kann
Die Geschichte, ein Modul zu erstellen, das E-Mails mit Python überspringt
[Python] Zeichnen Sie mit Plotly Höhendaten auf eine sphärische Oberfläche und zeichnen Sie einen Globus, der rund und rund gedreht werden kann
Ich habe die Jumbo-Lotterie zum Jahresende mit Python gekauft und analysiert, die in Colaboratory ausgeführt werden kann
Eine Geschichte, die die Gegenwart von Qiita mit Qiita API + Elasticsearch + Kibana visualisiert
[Python] Ein Programm, das die Anzahl der gepaarten Socken berechnet
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Treffen Sie eine Methode einer Klasseninstanz mit der Python Bottle Web API
Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
Rufen Sie eine Liste der Kameraparameter ab, die mit cv2.VideoCapture festgelegt werden können, und machen Sie daraus einen Wörterbuchtyp
[CleanArchitecture mit Python] Wenden Sie CleanArchitecture Schritt für Schritt auf eine einfache API an und versuchen Sie zu verstehen, welche Art von Änderung in der Codebasis stark ist.
[Python] Wäre es nicht das Beste und Höchste, wenn Sie die Unternehmensmerkmale mit nlplot erfassen könnten?
[Python] Ich habe einen Web-Scraping-Code erstellt, der automatisch den Nachrichtentitel und die URL von Nihon Keizai Shimbun erfasst.
[Python] Erstellen eines Tools, mit dem Python-Dateien mit tkinter & über den Teil, der abgefangen wurde, aufgelistet, ausgewählt und ausgeführt werden können
[Python3] Code, der verwendet werden kann, wenn Sie die Erweiterung eines Bildes sofort ändern möchten
Klasse für PYTHON, die ohne Kenntnis von LDAP betrieben werden kann
Rund um die Authentifizierung von PyDrive2, einem Paket zum Betreiben von Google Drive mit Python
[Python] Ein Programm, das die Anzahl der Aktualisierungen der höchsten und niedrigsten Datensätze berechnet
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
Konvertieren Sie den Zeichencode der Datei mit Python3
Berücksichtigung der Stärken und Schwächen von Python
[Python] Ich habe eine Praxis untersucht, die durch asynchrone Verarbeitung (Multiprocessing, Asyncio) parallel zum Hauptthread ausgeführt werden kann.
Verwenden Sie tkinter, um den Ausgabecode in Python als "A und vorgeben, B zu sein" zu verschieben
Automatisieren Sie das Entfernen des Hintergrunds für die neuesten Porträts in einem Verzeichnis mit Python und API
Erstellen Sie einen API-Server, um den Betrieb der Front-Implementierung mit Python3 und Flask zu überprüfen
Ich habe versucht, das Artikel-Update des Livedoor-Blogs mit Python und Selen zu automatisieren.
Visualisierung von geografischen Informationen von R und Python, die von Power BI ausgedrückt werden können
[Python] Einführung in das WEB-Scraping | Zusammenfassung der Methoden, die mit dem Webdriver verwendet werden können
Morphologische Analyse und tfidf (mit Testcode), die in ca. 1 Minute durchgeführt werden können
In Python3.8 und höher kann der inverse Mod mit der integrierten Funktion pow berechnet werden.
Ein Mechanismus zum Aufrufen von Ruby-Methoden aus Python, der in 200 Zeilen ausgeführt werden kann
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
#Eine Funktion, die den Zeichencode einer Zeichenfolge zurückgibt
PHP- und Python-Beispiele, die die ChatWork-API treffen
Ein Memo, dass ich den Datenspeicher mit Python berührt habe
[Python] Mit der API von Qiita erhalten Sie Benutzer- und Artikelinformationen
[Python] Ein Programm, das die Positionen von Kängurus vergleicht.
Sammeln Sie Tweets über "Corona" mit Python und erkennen Sie automatisch Wörter, die aufgrund des Einflusses von "Corona" zu einem heißen Thema geworden sind.
Ein Server, der mit Flasche.py und OpenCV die Anzahl der Personen vor der Kamera zurückgibt
Eine Bibliothek, die Leben und Tod anderer Maschinen durch Ping von Python aus überwacht
So starten Sie einen einfachen WEB-Server, der CGI von PHP und Python ausführen kann
Holen Sie sich den Kauf- und Verkaufspreis der virtuellen Währung mit der API von Zaif Exchange und erstellen Sie ein Diagramm
Formatübersicht der Formate, die mit gensim serialisiert werden können
Versuchen Sie, mit Python schnell und einfach auf die Twitter-API zuzugreifen
Ein Hinweis zum Aufrufen der Facebook-API mit dem Python SDK
Berühren wir die API der Netatmo Weather Station mit Python. #Python #Netatmo
Artikel, bei denen es sich um Humanressourcen handeln kann, die Anforderungen definieren und Systeme entwerfen können
Erkennen Sie mit Python Objekte einer bestimmten Farbe und Größe
Erstellen Sie den Code, der in Python "A und vorgeben B" ausgibt