J'ai essayé d'accéder à l'API Qiita depuis le début

introduction

Avec le sens de la mission d'étudier la langue Go, j'ai décidé de jouer avec.

golang + Qiita API

environnement

・ Go version go1.13 darwin / amd64

URI et fonction

Path Méthode HTTP fonction
/qiita/api/v1/user-info GET Renvoie une liste d'articles pour l'utilisateur spécifié dans l'ordre décroissant de la date et de l'heure de création.

Paquet utilisé

** · Gin ** gin est un framework web créé par go. C'est un excellent qui a également une fonction de traitement de réponse json.

go get github.com/gin-gonic/gin

organisation des fichiers

❯ tree .
.
├── main.go
└── src
    └── controller
        └── controller.go

2 directories, 2 files

controller Il résume le traitement de la tâche appelée depuis main.

controller.go


package controller

import (
	"encoding/json"
	"io/ioutil"
	"log"
	"net/http"
	"time"

	"github.com/gin-gonic/gin"
)

type Item struct {
	Title     string    `json:"title"`
	CreatedAt time.Time `json:"created_at"`
}

//Frappez l'API Qiita
func QiitaGET(c *gin.Context) {
	resp, err := http.Get("http://qiita.com/api/v2/users/{Nom de compte propre}/items?page=1&per_page=10")
	if err != nil {
		log.Fatal(err)
	}
	defer resp.Body.Close()
	body, err := ioutil.ReadAll(resp.Body)
	if err != nil {
		log.Fatal(err)
	}

	var data []Item

	if err := json.Unmarshal(body, &data); err != nil {
		log.Fatal(err)
	}

	c.JSON(http.StatusOK, gin.H{"item": data})
}

main Décrit le processus principal.

main.go


package main

import (
	"./src/controller"
	"github.com/gin-gonic/gin"
)

func main() {
	router := gin.Default()

	v1 := router.Group("/qiita/api/v1")
	{
		v1.GET("/user-info", controller.QiitaGET)
	}
	router.Run(":9000")
}

Courir

❯ go run main.go
[GIN-debug] [WARNING] Creating an Engine instance with the Logger and Recovery middleware already attached.

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.
 - using env:   export GIN_MODE=release
 - using code:  gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET    /qiita/api/v1/user-info   --> _/Users/********/Desktop/Qiita_PoC_API/src/controller.QiitaGET (3 handlers)
[GIN-debug] Listening and serving HTTP on :9000

J'ai utilisé postMan en accédant à l'API. スクリーンショット 2020-10-12 23.22.24.png

référence

Qiita API

Recommended Posts

J'ai essayé d'accéder à l'API Qiita depuis le début
J'ai essayé de toucher l'API Qiita
J'ai essayé de frapper l'API avec le client python d'echonest
J'ai essayé le roman Naro API 2
J'ai essayé l'API du roman Naruro
J'ai essayé d'utiliser l'API checkio
J'ai essayé d'obtenir diverses informations de l'API codeforces
J'ai essayé d'utiliser l'API UnityCloudBuild de Python
J'ai essayé de toucher l'API COTOHA
J'ai essayé d'utiliser l'API BigQuery Storage
J'ai essayé d'appeler l'API de prédiction du modèle d'apprentissage automatique de WordPress
J'ai essayé d'utiliser l'API Google Cloud Vision
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
Qiita Job J'ai essayé d'analyser le travail
J'ai essayé de détecter l'iris à partir de l'image de la caméra
J'ai essayé d'utiliser l'API de Sakenowa Data Project
J'ai tweeté depuis le terminal!
J'ai essayé la bibliothèque changefinder!
[Première API COTOHA] J'ai essayé de résumer l'ancienne histoire
J'ai essayé de créer une API list.csv avec Python à partir de swagger.yaml
J'ai essayé d'utiliser la bibliothèque Python de Ruby avec PyCall
J'ai essayé de reconnaître le visage de la vidéo (OpenCV: version python)
J'ai essayé de sauvegarder l'historique des demandes d'API DRF avec django-request
J'ai essayé de toucher la bibliothèque d'API de contrôle de routeur multi-fournisseur NAPALM
[Python] J'ai essayé de collecter des données en utilisant l'API de wikipedia
J'ai essayé l'API Google Cloud Vision pour la première fois
J'ai essayé de changer le script python de 2.7.11 à 3.6.0 sur Windows10
[Pour les débutants] J'ai essayé d'utiliser l'API Tensorflow Object Detection
J'ai essayé le tutoriel TensorFlow 1er
J'ai essayé de créer l'API Quip
J'ai essayé le tutoriel TensorFlow 2ème
J'ai touché l'API de Tesla
J'ai essayé Grumpy (allez exécuter Python).
Utilisez l'API Flickr de Python
J'ai essayé la mise en file d'attente des tâches de Celery
J'ai essayé de déplacer le ballon
J'ai essayé d'estimer la section.
J'ai essayé de gratter le classement du calendrier de l'avent Qiita avec Python
J'ai essayé d'utiliser l'API COTOHA (il y a aussi du code sur GitHub)
J'ai créé un bot Twitter avec Go x Qiita API x Lambda
J'ai essayé d'envoyer du courrier depuis le serveur Sakura avec flask-mail
Suite ・ J'ai essayé de toucher la bibliothèque d'API de contrôle de routeur multifournisseur NAPALM
J'ai essayé de couper une image fixe de la vidéo
[API Qiita] [Statistiques • Apprentissage automatique] J'ai essayé de résumer et d'analyser les articles publiés jusqu'à présent.
J'ai essayé d'utiliser l'API Google avec Ruby et Python - Faites de la base de données une feuille de calcul et gérez-la avec Google Drive
Tutoriel TensorFlow J'ai essayé MNIST 3rd
J'ai essayé de récupérer les données de conversation d'ASKfm
J'ai essayé le serveur asynchrone de Django 3.0
J'ai essayé de résumer la commande umask
J'ai essayé tensorflow pour la première fois
J'ai essayé d'extraire des caractères des sous-titres (OpenCV: API Google Cloud Vision)
J'ai essayé de reconnaître le mot de réveil
J'ai essayé LeetCode tous les jours 26. Supprimer les doublons du tableau trié (Python, Go)
J'ai essayé d'utiliser l'API de données YOUTUBE V3
Je suis tombé sur l'API Hatena Keyword
J'ai essayé l'outil de visualisation OSS, sur-ensemble
J'ai essayé de résumer la modélisation graphique.