[PYTHON] Créer un pseudo serveur d'API REST à l'aide de pages GitHub

introduction

Qiita --Préparez un pseudo serveur API à l'aide d'actions GitHub Dans cet article, j'ai suggéré que le fait que le fichier json puisse être automatiquement mis à jour à l'aide d'actions et qu'il puisse être lu par Pages signifie qu'il peut être exploité comme un pseudo serveur API. Cependant, avec cela, même si seule une petite partie de l'énorme quantité de données est souhaitée, il est nécessaire de les acquérir à chaque fois et de les tracer à partir de la clé.

Alors pourquoi ne pas diviser le fichier json, comment?

REST API J'ai recherché l'API REST sur Qiita --0 Je comprends que l'API REST que j'entends souvent dans les rues est un routage d'URL conforme aux données, je vais donc le diviser en fonction de cela.

sample.json (Source des données: données traitées obtenues à partir du portail de données ouvertes de Hokkaido)



{
    "data": [
        {
            "no": "1",
            "date": "2020-01-28T00:00",
            "place": "Ville de Wuhan, Chine",
            "age": "Quarante",
            "sex": "Femme"
        },
        {
            "no": "2",
            "date": "2020-02-14T00:00",
            "place": "Sapporo",
            "age": "Années 50",
            "sex": "Masculin"
        }
    ],
    "last_update": "2020-03-14T23:14:01.849130+09:00"
}

L'URL d'hébergement est http: // {HOSTING} /.

Données à acquérir URL de l'API REST
sample.Toutes les données JSON http://{HOSTING}/sample
sample.json dernier_update http://{HOSTING}/sample/last_update
sample.Le premier élément des données de json http://{HOSTING}/sample/data/0
sample.Le deuxième élément des données de json http://{HOSTING}/sample/data/1
sample.No du deuxième élément des données de json http://{HOSTING}/sample/data/1/no

Si tel est le cas, il s'agit d'une traduction REST.

Créer une pseudo API REST avec des pages GitHub

Dans les pages GitHub, l'accès au répertoire est dirigé vers index.html. En d'autres termes, si vous accédez à http: // {HOSTING} / sample, écrivez toutes les données de sample.json dans la racine /sample/index.html de la branche gh-pages, et la chaîne de caractères JSON des données souhaitées sera renvoyée. C'est une traduction. http://{HOSTING}/sample/last_updateの場合はルート/sample/last_update/index.htmlに「2020-03-14T23:14:01.849130+09:00」という文字列を書き込んでおく。

Si vous hébergez avec la procédure ci-dessus, vous pouvez dire que vous avez un pseudo serveur API REST.

la mise en oeuvre

Kanahiro/gh-pages-rest-api Dans ce script, main.py est exécuté par Actions lorsqu'il est poussé vers master. main.py lit le fichier json dans le dossier json et place index.html dans gh-pages dans le répertoire subdivisé comme décrit ci-dessus.

Le fichier sample.json ci-dessus est stocké dans le dossier json du référentiel ci-dessus. L'URL d'hébergement des pages gh est https \ //kanahiro.github.io/gh-pages-rest-api/

Données à acquérir URL de l'API REST
sample.Toutes les données JSON https://kanahiro.github.io/gh-pages-rest-api/sample
sample.json dernier_update https://kanahiro.github.io/gh-pages-rest-api/sample/last_update
sample.Le premier élément des données de json https://kanahiro.github.io/gh-pages-rest-api/sample/data/0
sample.Le deuxième élément des données de json https://kanahiro.github.io/gh-pages-rest-api/sample/data/1
sample.No du deuxième élément des données de json https://kanahiro.github.io/gh-pages-rest-api/sample/data/1/no

Il sera automatiquement hébergé après avoir été poussé vers master comme suit: La seule demande que vous pouvez faire est GET, mais on peut dire que l'API REST est implémentée dans les pages GitHub.

Et comme introduit dans Qiita --Preparing a pseudo API server using GitHub Actions, si le fichier json peut être mis à jour automatiquement en planifiant par Actions , Devient un serveur d'API REST où les données sont mises à jour automatiquement.

Réutilisation

  1. Forkez le référentiel ci-dessus
  2. Placez le json que vous souhaitez héberger dans le dossier json
  3. Push to master (→ les données sont automatiquement sorties vers gh-pages)

Remarques

――Depuis que je viens de le faire, je n'ai pas essayé de le lire correctement sur la face avant. «Je viens de le faire, donc je ne sais pas quel genre de problème il a.

Recommended Posts

Créer un pseudo serveur d'API REST à l'aide de pages GitHub
Préparer un pseudo serveur API à l'aide d'actions GitHub
Créons une API REST en utilisant SpringBoot + MongoDB
Créer un serveur REST (simple)
Créer une API CRUD à l'aide de l'API rapide
Créez facilement un serveur API à l'aide du module go-json-rest
Comment créer une API Rest dans Django
Créez une API REST à l'aide du modèle appris dans Lobe et TensorFlow Serving.
Apprendre un réseau neuronal à l'aide de Chainer
Créer un serveur textlint simple
Créez un serveur Web API à une vitesse explosive en utilisant HUG
Créez un robot de réponse automatique en temps réel à l'aide de l'API Twitter Streaming
Obtenir des données Salesforce à l'aide de l'API REST
Créer une API qui renvoie les données d'un modèle à l'aide de turicreate
Créer une interface graphique python à l'aide de tkinter
Créer un dictionnaire imbriqué à l'aide de defaultdict
Créez facilement un TalkBot en utilisant Discord.py et l'API Talk d'A3RT (pya3rt).
Créer un serveur de socket de domaine Unix
Créez une API en utilisant hug avec mod_wsgi
Créer des pages github avec lektor partie 1
[Python] J'ai écrit une API REST en utilisant AWS API Gateway et Lambda.
J'ai créé Chatbot en utilisant l'API LINE Messaging et Python (2) ~ Server ~
Essayez de créer un article de Qiita avec l'API REST [Préparation environnementale]
Créer une API REST pour faire fonctionner dynamodb avec le Framework Django REST
Créez un wrapper de langage C à l'aide de Boost.Python
Comment créer un clone depuis Github
Créez facilement un serveur DNS en utilisant Twisted
Créer un graphique à l'aide du module Sympy
[Python] Créer un environnement Batch à l'aide d'AWS-CDK
Configurer un serveur de messagerie avec Twisted
Créer une application à l'aide de l'API Spotify
Créer un bloc de données à partir d'Excel à l'aide de pandas
Collecte de données FX à l'aide de l'API REST OANDA
Créer un fichier GIF en utilisant Pillow en Python
Créer une application d'assistance technique à l'aide de PyLearn2
Créer un arbre phylogénétique à partir de Biopyton en utilisant ClustalW2
Ecrire un serveur TCP à l'aide du module SocketServer
Créer un analyseur de données binaires à l'aide de Kaitai Struct
Liste des référentiels de sortie à l'aide de l'API Github sur Mac
Essayez de créer un serveur HTTP en utilisant Node.js
Créer un système de notification des visiteurs à l'aide de Raspberry Pi
Créez un fichier MIDI en Python en utilisant pretty_midi
Créer un serveur "Hello World" (HTTP) dans Tornado
Créez rapidement un serveur API avec Python + Falcon
Créez une interface graphique sur le terminal à l'aide de curses