0
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 3 years have passed since last update.

football-data.orgのAPIでサッカーのデータを取得する

Posted at

サッカーチームや試合のデータをAPIで取得できないか?と思ったので探した結果よさそうなAPIサービスがあったのでデータ取得までまとめます。

API概要

今回使ってみるAPI。アカウント登録すれば無料枠で12のコンペティション(5大リーグやCLなど)のデータを取得できる。詳細は公式ページにて

アカウント登録

登録画面から名前、メールアドレス、言語を選んで登録。利用規約はしっかり読むこと!

@football-data.orgのメールアドレスからAPIトークンが送られてくる。

データ取得

公式ドキュメントを参考に。今回はGO言語でサッカー史上最もクールなクラブチームを取得するように実装しました。

package main

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

func main() {
	// 取得したいデータのURL作成
	url, _ := url.Parse("https://api.football-data.org/v2/")
	url.Path = path.Join(url.Path, "teams", "108")

	req, _ := http.NewRequest("GET", url.String(), nil)
	req.Header.Add("X-Auth-Token", "Your API token") // アカウント登録時に送られてきたAPIトークンをリクエストヘッダーに追加
	client := new(http.Client)
	resp, _ := client.Do(req)
	defer resp.Body.Close()

	byteArray, _ := ioutil.ReadAll(resp.Body)
	fmt.Println(string(byteArray))
}

取得データ

{
	"id": 108,
	"area": {
		"id": 2114,
		"name": "Italy"
	},
	"activeCompetitions": [
		{
			"id": 2001,
			"area": {
				"id": 2077,
				"name": "Europe"
			},
			"name": "UEFA Champions League",
			"code": "CL",
			"plan": "TIER_ONE",
			"lastUpdated": "2021-06-26T13:37:26Z"
		},
		{
			"id": 2019,
			"area": {
				"id": 2114,
				"name": "Italy"
			},
			"name": "Serie A",
			"code": "SA",
			"plan": "TIER_ONE",
			"lastUpdated": "2021-04-17T07:19:44Z"
		}
	],
	"name": "FC Internazionale Milano",
	"shortName": "Inter",
	"tla": "INT",
	"crestUrl": "https://crests.football-data.org/108.png",
	"address": "Corso Vittorio Emanuele II 9 Milano 20122",
	"phone": "+39 (02) 77151",
	"website": "http://www.inter.it",
	"email": "segreteriaccic@inter.it",
	"founded": 1908,
	"clubColors": "Blue / Black",
	"venue": "Stadio Giuseppe Meazza",
	"squad": [
		{
			"id": 77,
			"name": "Joaquín Correa",
			"position": "Attacker",
			"dateOfBirth": "1994-08-13T00:00:00Z",
			"countryOfBirth": "Argentina",
			"nationality": "Argentina",
			"shirtNumber": null,
			"role": "PLAYER"
		},
		...
	],
	"lastUpdated": "2021-11-24T14:55:58Z"
}

まとめ

試合結果や成績を取得するだけであれば十分で比較的容易に実装することができました。選手の個人スタッツ等まで深堀するにはこのAPIでは取れないので他を検討する必要がありそうです。

0
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
0
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?