4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Go言語でAPIを叩いてみる

Last updated at Posted at 2019-07-16

初めてGo言語に触れてみる。
お決まりのHello Worldの儀式を済ませたので、早速Goを使ってAPIを叩いてみる。

#環境
CentOS7
go version go1.12.7 linux/amd64

#APIを叩く
サンプルに使ったのは楽天ブックス総合検索API。
せっかくなのでリクエストパラメータに「go言語」を指定してみる。

api_get.go
package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
	"net/url"
	"os"
)

func main() {
	// リクエストパラメータの定義
	query_param := url.Values{}
	query_param.Add("applicationId", "XXXXXXXX") // XXXXXXXX => apiid
	query_param.Add("format", "json")
	query_param.Add("keyword", "go言語")
	query_param.Add("booksGenreId", "000")
	query_param.Add("page", "1")
	// クエリパラメータをエンコード
	parse_value := query_param.Encode()

	// getリクエスト
	response, err := http.Get("https://app.rakuten.co.jp/services/api/BooksTotal/Search/20170404?" + parse_value)
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}

	// レスポンスステータスの確認
	fmt.Println("status: ", response.Status)

	// レスポンスの内容を全て読み込む
	body, err := ioutil.ReadAll(response.Body)
	if err != nil {
		fmt.Println(err)
		os.Exit(1)
	}

	// 読み込んだ中身を表示
	fmt.Println(string(body))
}

#結果

一番最初に取れたのは「スターティングGo言語」ですね。
名著がいい感じに取れました。

status:  200 OK
{"count":9,"page":1,"first":1,"last":9,"hits":9,"carrier":0,"pageCount":1,"Items":[{"Item":{"title":"スターティングGo言語","author":"松尾愛賀","artistName":"","publisherName":"翔泳社","label":"","isbn":"9784798142418","jan":"","hardware":"","os":"","itemCaption":"本書は、次世代のプログラミング言語として注目を浴びる「Go言語」をこれから学ぶ人のための学習書です。基本構文から、ゴルーチンなどの特徴的な機能、開発ツールやパッケージの使い方まで、Goプログラムを書いてみたい方に必要な知識を解説しています。Go言語の最新バージョン1.6に対応。使用頻度の高いパッケージの使い方は集中的に解説。巻末には標準ライブラリのパッケージカタログを付けました。便利で役立つ一冊です。"
# => 他にも取得出来ましたが長いので割愛

#まとめ
最近使っているpythonのrequestsのノリで書いてみましたが、全然goっぽくない。
今度は構造体に取得したデータをぶちこんだりして、もっとgoっぽく書けたらいいな。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?