- ã¯ããã«
- 課é¡ï¼ãå¤©æ°æ å ±ãAPIã§åãåããBacklogã®èª²é¡ã«ä»æ¥ã®ãå¤©æ°æ å ±ã表示ããã¦ã¿ããâ
- ã¾ã¨ã
ã¯ããã«
ã¯ããã¾ãã¦ãæ°å ¥ç¤¾å¡ã®æ¡éã§ãã
é å±å½åãAPIã«ã¤ãã¦çè§£ããããã«BacklogAPIã使ç¨ãã¦å®éã«APIã®åãæ¸¡ããå®è·µãã¦ã¿ãã®ã§ãä»åã¯ãã®å 容ã«ã¤ãã¦ãä¼ããããã¨æãã¾ãã
å½åã®ç§ã¯APIã«ã¤ãã¦ãã¾ãè¯ãåãã£ã¦ãããããAPIï¼ãªããPOSTã¨ãGETã¨ããã¦ããã¤ï¼ãç¨åº¦ã®èªèããæã£ã¦ãã¾ããã§ããã
å®éã«APIã«ã¤ãã¦ãããã§èª¿ã¹ã¦ã¿ãã¨ã次ã®ããã«å®ç¾©ããã¦ãã¾ãã
ãã¢ããªã±ã¼ã·ã§ã³åå£«ãæ å ±ãããåãããããã®ããã°ã©ãã³ã°ä¸ã®çªå£ã
ããªã¯ã¨ã¹ããéä¿¡ããã¬ã¹ãã³ã¹ãåãåãå½¢å¼ã§ãã¼ã¿äº¤æãè¡ããã½ããã¦ã§ã¢éçºã®å¹çåãçµ±åã容æã«ãã¾ããã
ããããAPIã«ã¤ãã¦ã¯è§¦ãããã¨ããªãã£ãã®ã§ããçªå£ï¼ãã¼ã¿äº¤æï¼ð¥ãã¨ãã£ãæãã§ããã¾ãã¡ããåãããªãã¨ããå°è±¡ã§ããã
ãããªç¶æ ã ã£ãç§ããããããèªåãåç»ãã¦ããããã¸ã§ã¯ãã§APIè¨è¨ã«æºãããããããªãã¨ããç¶æ³ã«ãªã£ãã®ã§ãã¾ãã¯èª²é¡å½¢å¼ã§å¦ã¶ãã¨ã«ãªãã¾ããã
ãã®è¨äºã§ã¯ãå®éã«æãåããã¦å¦ãã å 容ããä¼ããã¾ãã
課é¡ï¼ãå¤©æ°æ å ±ãAPIã§åãåããBacklogã®èª²é¡ã«ä»æ¥ã®ãå¤©æ°æ å ±ã表示ããã¦ã¿ããâ
ä»åã¯å®éã«ã¤ã¡ã¼ã¸ãæ´ãããã«ã身è¿ã§ä½¿ç¨ãã¦ããããã¸ã§ã¯ã管çãã¼ã«ã§ããBacklogã¨ããå¤©æ°æ å ±ãåå¾ããâ»æ°è±¡åºã®APIã使ç¨ããåãåã£ããå¤©æ°æ å ±ãBacklogã®èª²é¡ã¨ãã¦è¿½å ããã¨ããå®è£ ãè¡ãã¾ããã
â»æ°è±¡åºã®APIã¨ã¯ãæ°è±¡åºã®Webãµã¤ãããåå¾ã§ããjsonå½¢å¼ã®å¤©æ°æ å ±ã§ãããå ¬å¼ã«APIã¨ãã¦æä¾ããã¦ãããµã¼ãã¹ã§ã¯ãªããããç¡ä¿è¨¼ãã¤ãã¢ãããã¼ãçã«ãã使ç¨ä¸å¯ã«ãªãå¯è½æ§ãããã¾ãã åºæ¬çã«ã¯ãæ¿åºæ¨æºå©ç¨è¦ç´ãã«æºæ ãã¦å©ç¨å¯è½ã§ãã
ä»å使ç¨ãããã¼ã«ã¨APIï¼
- Postmanï¼å¿ è¦ãªAPIã®é¸å®ã«ä½¿ç¨
- æ°è±¡åºAPIï¼ãå¤©æ°æ å ±ãåå¾ããããã«ä½¿ç¨
- BacklogAPIï¼èª²é¡ã追å ããããã«ä½¿ç¨
åèã«ãããµã¤ãï¼
ä»åã®èª²é¡ã®å 容ã¯ããå¤©æ°æ å ±ãåå¾ããBacklogã®èª²é¡ã¨ãã¦è¿½å ããã¨ãããã®ãªã®ã§ã HTTPãªã¯ã¨ã¹ãã¡ã½ããã®GETã¡ã½ããã¨POSTã¡ã½ããã使ç¨ãã¦APIã®ããåããè¡ãã¾ãã
GETï¼æå®ãããªã½ã¼ã¹ã®è¡¨ç¾ããªã¯ã¨ã¹ãããã主ã«ãã¼ã¿ã®åå¾ãè¡ãã
POSTï¼æå®ãããªã½ã¼ã¹ã«å®ä½ãéä¿¡ããããã«ä½¿ç¨ããã¡ã½ãããæ°ãããã¼ã¿ã使ããã¨ãã«ä½¿ç¨ãããã
ãã®ããã«ãGETããã¼ã¿ã®åå¾ãPOSTããã¼ã¿ã®ä½æã®å½¹å²ãæã£ã¦ããäºãåããã¾ãã
ã¤ã¾ããæ°è±¡åºAPIããæ å ±ãGETããBacklogAPIã«åå¾ããæ å ±ãPOSTããã¨ããæµãã«ãªãã¾ãã
ãã®ï¼ï¼Postmanã使ã£ã¦å¿ è¦ãªAPIãé¸å®ãããð®
Postmanã¨ã¯ä½ãã¨ããã¨ãWebAPIã®ãã¹ããè¡ããã¨ãã§ããAPI管çãã¼ã«ã§ãã
ãã©ã¼ã ã«å¤ãå ¥ãã¦ã©ã®ãããªçµæãè¿ã£ã¦ãããããèªè¨¼æ å ±ãæå¹ããªã©ã®ãªã¯ã¨ã¹ãã«å¯¾ããã¬ã¹ãã³ã¹ãç°¡åã«è¿ãã¦ããã¾ããæ¥æ¬èªã«ã対å¿ãã¦ããã®ã§é常ã«ä½¿ãããããã¼ã«ã ã¨æãã¾ããã
ä»åã¯ãã®Postmanã使ç¨ãã¦å¿ è¦ã¨ãªãAPIãé¸å®ããã©ã®ãããªçµæãè¿ã£ã¦ããããè¦ã¦ããããã¨æãã¾ãã
â æ°è±¡åºAPIããå¿ è¦ãªAPIãé¸å®ãããâ
ä»åã¯æ°è±¡åºãå ¬éãã¦ããjsonãã¼ã¿ããå¤©æ°æ å ±ãåå¾ãã¾ãã
ã¾ãã以ä¸ã®URLãã天æ°äºå ±ã¨ãªã¢ã®æ å ±ãåå¾ããåå¾ãããã¨ãªã¢ã®IDãé¸å®ãã¾ãã
https://www.jma.go.jp/bosai/common/const/area.json
ä»åã¯æ±äº¬é½ã®å¤©æ°äºå ±ã表示ããããã®ã§ãæ±äº¬ã®IDãæ¢ãã¾ãã
Postmanã§GETãªã¯ã¨ã¹ããéä¿¡ããã¨ã以ä¸ã®ããã«æ±äº¬é½ã®IDã確èªããäºãã§ãã¾ããã
æ±äº¬ã®IDã130000ã§ãããã¨ãåãã£ãã®ã§ã以ä¸ã®URLã«æ±äº¬ã®IDã追å ãã¾ãã
https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json
å ã»ã©ã¨åæ§ã«Postmanã§GETãªã¯ã¨ã¹ããéä¿¡ããã¨ã以ä¸ã®ããã«æ±äº¬ã®å¤©æ°æ å ±ãåå¾ããäºãã§ãã¾ããã
"timeDefines": [ "2025-01-07T11:00:00+09:00", "2025-01-08T00:00:00+09:00", "2025-01-09T00:00:00+09:00" ], "areas": [ { "area": { "name": "æ±äº¬å°æ¹", "code": "130010" }, "weatherCodes": [ "201", "101", "101" ], "weathers": [ "ããããæã ãæ´ããæã«ããã夿¹ãã¾ã§ãé¨", "æ´ããæã ãããã", "æ´ããæã ãããã" ], "winds": [ "å西ã®é¢¨ãï¼ï¼åºè¥¿é¨ãã§ã¯ãå西ã®é¢¨ãããå¼·ã", "å西ã®é¢¨ãï¼ï¼åºè¥¿é¨ãã§ã¯ãå西ã®é¢¨ãããå¼·ã", "åã®é¢¨ãããå¼·ããå¾ãå西ã®é¢¨ãããå¼·ã" ], "waves": [ "ï¼ï¼ï¼ã¡ã¼ãã«ãå¾ãï¼ã¡ã¼ãã«", "ï¼ã¡ã¼ãã«", "ï¼ã¡ã¼ãã«" ] },
ãã®ããã«ãPostmanã使ç¨ãããã¨ã§ã¬ã¹ãã³ã¹ã®è©³ç´°ãç°¡åã«ç¢ºèªããäºãã§ãã¾ããã
ä»åã¯ä¸é¨ã®æ å ±ã®ã¿ã使ç¨ã表示ããããã®ã§ããããã表示ãããããã©ã¡ã¼ã¿ãæ´çãã¦ããã¾ãã
ä»åã¯ããå ´æåããæ¥ä»ãã天æ°ããå¤©æ°æ¦è¦ããéæ°´ç¢ºçãã®æ å ±ãåå¾ãããã®ã§ã å ã»ã©åå¾ããæ å ±ããå¿ è¦ãªãã©ã¡ã¼ã¿ã¼ãé¸å®ãã¾ãã
å¿ è¦ãªãã©ã¡ã¼ã¿ã¼ã¯ä»¥ä¸ã«ãªãã¾ãã
"timeSeries": [ { #æ¬æ¥ã®æ¥ä»ãåå¾ "timeDefines": [ "2025-01-07T11:00:00+09:00", "2025-01-08T00:00:00+09:00", "2025-01-09T00:00:00+09:00" ], "areas": [ { #å ´æåãåå¾ "area": { "name": "æ±äº¬å°æ¹", "code": "130010" }, #ã天æ°ãåå¾ "weathers": [ "ããããæã ãæ´ããæã«ããã夿¹ãã¾ã§ãé¨", "æ´ããæã ãããã", "æ´ããæã ãããã" ], ãããããã#12æã®é水確ç ãããããã "pops": [ "20", "10", "0", "0", "10", "0" ]
ã¾ãããå¤©æ°æ¦è¦ã¯ä»¥ä¸ã®URLããåå¾ããäºãã§ãã¾ãã
https://www.jma.go.jp/bosai/forecast/data/overview_forecast/130000.json
{ "publishingOffice": "æ°è±¡åº", "reportDatetime": "2025-01-07T10:35:00+09:00", "targetArea": "æ±äº¬é½", "headlineText": "", #ãå¤©æ°æ¦è¦ãåå¾ "text": "ãæ¥æ¬æµ·ã«ã¯ä½æ°å§ããã£ã¦ãæ±åæ±ã¸é²ãã§ãã¾ãã\n\nãæ±äº¬å°æ¹ã¯ãæããæ´ãã§ãé¨ã®éã£ã¦ããæãããã¾ãã\n\nãï¼æ¥ã¯ãå¬åã®æ°å§é ç½®ã¨ãªãã¾ãããæ°å§ã®è°·ã®å½±é¿ãåããè¦è¾¼ã¿ã§ãããã®ãããæãæã æ´ãã§ã夿¹ã¾ã§é¨ã®éãæãããã§ãããã\n\nãï¼æ¥ã¯ãå¼ãç¶ãå¬åã®æ°å§é ç½®ã¨ãªãã¾ãããæ°å§ã®è°·ã®å½±é¿ãåããè¦è¾¼ã¿ã§ãããã®ãããæ´ãæã æãã¨ãªãã§ãããã\n\nã颿±ç²ä¿¡å°æ¹ã\nã颿±ç²ä¿¡å°æ¹ã¯ãæããæ´ãã§ãé¨ãéªã®éã£ã¦ããæãããã¾ãã\n\nãï¼æ¥ã¯ãå¬åã®æ°å§é ç½®ã¨ãªãã¾ãããæ°å§ã®è°·ã使°å§ã®å½±é¿ãåããã§ãããããã®ãããæããæ´ãã§ãé¨ãéªãéããé·éçã§ã¯é·ãä¼´ãæãããè¦è¾¼ã¿ã§ãã\n\nãï¼æ¥ã¯ãå¼ãç¶ãå¬åã®æ°å§é ç½®ã¨ãªãã¾ãããæ°å§ã®è°·ã坿°ã®å½±é¿ãåããã§ãããããã®ãããæ´ããæãã§ãé·éçã¨é¢æ±å°æ¹åé¨ã§ã¯éªãéããé·éçã§ã¯é·ãä¼´ãæãããè¦è¾¼ã¿ã§ãã\n\nã颿±å°æ¹ã¨ä¼è±è«¸å³¶ã®æµ·ä¸ã§ã¯ãï¼æ¥ããï¼æ¥ã«ããã¦ãããããä¼´ããããã§ããããè¹è¶ã¯é«æ³¢ã«è¦æãã¦ãã ããã" }
ãã®ããã«ãã¦ãå¿ è¦ãªæ°è±¡åºAPIã®ãã©ã¡ã¼ã¿ãé¸å®ã§ãã¾ããã
ç¶ãã¦ã¯ãBacklogAPIã§å¿ è¦ãªAPIãé¸å®ãã¦ããã¾ãã
â¡BacklogAPIããå¿ è¦ãªAPIãé¸å®ãããð
BacklogAPIã§ã¯ããããã¸ã§ã¯ãã«èª²é¡ã追å ãããã¨ããæä½ãè¡ãã¾ãã
ãã®ããã«ã¯ãã¾ã課é¡ã追å ãããããã¸ã§ã¯ãã®ããã¸ã§ã¯ãIDãåå¾ããå¿ è¦ãããã¾ãã
ããã¸ã§ã¯ãã®è¨å®ãã¼ã¸ã®URLãè¦ãã¨ãURLã®æ«å°¾ã«ããã¸ã§ã¯ãIDãæ¸ãã¦ãããã¨ãåããã®ã§ãããããããã¸ã§ã¯ãIDãææ¡ãã¾ãã

ã¾ããBacklogã®å人è¨å®ãã¼ã¸ããAPIãã¼ãç»é²ãåå¾ããäºãã§ãã¾ãã

Postmanã§APIãã¼ã¨ãåå¾ããããã¸ã§ã¯ãIDãè¨å®ãã課é¡ä¸è¦§ãGETãããªã¯ã¨ã¹ããéä¿¡ãã¾ãã

ããã¨ä»¥ä¸ã®ããã«ã課é¡ä¸è¦§ã®ãã©ã¡ã¼ã¿ã¼ã確èªããäºãã§ããã®ã§ãå¿ è¦ãªãã©ã¡ã¼ã¿ã¼ã鏿ãããã¨ãã§ãã¾ãã
{ "id": 45848535, "projectId": 123456, "issueKey": "sample", "keyId": 123, "issueType": { "id": 123456, "projectId": 123456, "name": "ã¿ã¹ã¯", "color": "#7ea800", "displayOrder": 0 }, "summary": "ã¿ã¤ãã«", "description": "æ¬æ", "resolution": null, "priority": { "id": 3, "name": "ä¸" },
ä»å課é¡ã追å ããããã«å¿ é ã§è¨å®ããªããã°ãããªãé ç®ã¯ããããã¸ã§ã¯ãIDããã¿ã¤ãã«ãã課é¡ç¨®å¥IDããåªå é ä½ããæ¬æãã«ãªãã®ã§ã以ä¸ã®ãã©ã¡ã¼ã¿ã¼ã使ç¨ãã¾ãã
#ããã¸ã§ã¯ãid "ProjectId"ï¼xxxxxx #ã¿ã¤ãã« "summary"ï¼xxxxx #課é¡ç¨®å¥id "issueType"ï¼ï½ "id": xxxxxxx ï½ #åªå é ä½ "priority"ï¼ï½ "Id"ï¼xxxxxx ï½ #æ¬æ "description"ï¼xxxxxx
ããã§ãBacklogAPIã§å¿ è¦ãªãã©ã¡ã¼ã¿ã¼ãé¸å®ããäºãã§ãã¾ããã
ãã®ï¼ï¼Backlogã®èª²é¡ã追å ãããð
ä»åã¯Pythonã§èª²é¡è¿½å APIãå¼ã³ã ãã³ã¼ããå®è£ ãã¦ããã¾ãã
æé ã¨ãã¦ã¯ã以ä¸ã®æµãã«ãªãã¾ãã
â æ°è±¡åºAPIããæ å ±ãåå¾ãã
â¡â ã§åå¾ããæ å ±ã使ã£ã¦BacklogAPIã®èª²é¡è¿½å APIãå¼ã³åºã
â æ°è±¡åºAPIããæ å ±ãåå¾ãã
å¿ è¦ãªãã©ã¡ã¼ã¿ã¼ãå®ç¾©ããåå¾ããæ å ±ãä»£å ¥ãããã課é¡ã®ã¿ã¤ãã«ã¨ãªãæç« ã¨æ¬æã¨ãªãæç« ãå®ç¾©ãã¦ããã¾ãã
import requests import json #APIã®URL url1 = "https://www.jma.go.jp/bosai/forecast/data/forecast/130000.json" url2 = "https://www.jma.go.jp/bosai/forecast/data/overview_forecast/130000.json" #ãã¼ã¿ãåå¾ tenki_data = requests.get(url1).json() tenki_detail = requests.get(url2).json() #æ¥ä»ãåå¾ date = tenki_data[0]["timeSeries"][0]["timeDefines"][0] #å ´æåãåå¾ area = tenki_data[0]["timeSeries"][0]["areas"][0]["area"]["name"] #ã天æ°ãåå¾ weather = tenki_data[0]["timeSeries"][0]["areas"][0]["weathers"][0] #éæ°´ç¢ºçãåå¾ rain_chance = tenki_data[0]["timeSeries"][1]["areas"][0]["pops"][0] #å¤©æ°æ¦è¦ãåå¾ desc = tenki_detail["text"] #課é¡ã®ã¿ã¤ãã«ãè¨å® title = f"æ¬æ¥({date})ã®{area}ã®ã天æ°" #課é¡ã®æ¬æãè¨å® total_text = f"#æ¬æ¥ã®ã天æ°\næ¬æ¥ã®{area}ã®ã天æ°ã¯{weather}ã§ãã\n#éæ°´ç¢ºç\néæ°´ç¢ºçã¯{rain_chance}ï¼ ã§ãã\n#詳細æ å ±\n{desc}"
â¡BacklogAPIã®èª²é¡è¿½å APIãå¼ã³åºã
APIãã¼ã¨ã¹ãã¼ã¹åãè¨å®ãã課é¡ã追å ãã颿°ãå®ç¾©ãã¾ãã create_issue颿°ã«ãå ã»ã©å¤©æ°äºå ±APIããåå¾ãå®ç¾©ããã¿ã¤ãã«ã¨æ¬æã®å¤ã渡ããå¿ è¦ãªãproject_idãããissue_type_idãããpriority_idããè¨å®ãã¾ãã
API_KEY = 'yourAPIkey'ã//èªåã®Backlogããåå¾ããAPIãã¼ãè¨è¼ãã BacklogUrl = 'https://your.space.name.jp'ã//Backlogã®ã¹ãã¼ã¹åãè¨è¼ãã def create_issue(project_id, summary, description, issue_type_id, priority_id): BACKLOG_URL = BacklogUrl+'/api/v2/issues?apiKey='+API_KEY payload = { 'projectId': project_id, 'summary': title, 'description': total_text, 'issueTypeId': issue_type_id, 'priorityId': priority_id } response = requests.post(BACKLOG_URL, json=payload)ã//**APIãªã¯ã¨ã¹ãã®éä¿¡** if response.status_code == 201: return response.json() else: print(f'Error: {response}') return None # 課é¡ã®ä½æä¾ new_issue = create_issue( project_id=123456, //åå¾ããããã¸ã§ã¯ãIDãè¨è¿°ãã¾ã summary='summary', //è¨å®ãã課é¡ã¿ã¤ãã« description='description', //è¨å®ããèª¬ææ issue_type_id=123456, //è¨å®ããã課é¡ã®ã¿ã¤ãidãè¨å® priority_id=3 //è¨å®ãããåªå 度ãè¨è¿° ) if new_issue: print(f'Created issue: {new_issue["id"]}, {new_issue["summary"]}')
ãã®ããã«ã³ã¼ããè¨è¿°ããå®è¡ããã¨ã»ã»ã»
æ¬æ¥ã®ãå¤©æ°æ å ±ã課é¡ã¨ãã¦è¿½å ããã¾ããï¼ð¤
ãã®ããã«ãæ°è±¡åºAPIããå¤©æ°æ å ±ãGETããBacklogAPIãç¨ãã¦åå¾ããæ å ±ãPOSTãããã¨ã§ãAPIã®åãæ¸¡ããç°¡åã«å®è£ ããäºãã§ãã¾ããã
ã¾ã¨ã
ä»å使ç¨ããBacklogAPIã«ã¯ã課é¡ã追å ããã ãã§ã¯ãªã課é¡ä¸è¦§åå¾ããã¦ã¼ã¶ã¼è¿½å ãªã©ã®è¤æ°ã®æ©è½ãæä¾ããã¦ãã¾ãã
BacklogAPIã使ãã°ãããã°ã©ã ãçµç±ãã¦Backlogã«é¢ããæ§ã ãªæ¥åãèªååãããã¨ãå¯è½ã«ãªãã¾ãã
APIã®ã¡ãªããã¯ç°¡åã«åãæ±ãäºãã§ãããªããã¤ããã°ã©ã ä½æã®æéãç縮ãã¦ãããã¨ããã ã¨æãã¾ãã
å¤©æ°æ å ±ã®ãã¼ã¿ãï¼ããèªåã§ä½æãã¦ããããéæ¹ããªãæéãããã£ã¦ãã¾ãã¨æãã¾ãããAPIãããã°çæéã§å¶ä½ãå¯è½ã«ãªãã®ã§ãé常ã«ä¾¿å©ã§ãããããåå¨ã ãªã¨ããã®èª²é¡ãéãã¦APIã®æç¨ãã宿ãããã¨ã¨ãªãã¾ããã
ã¾ããä»åã®èª²é¡ãéãã¦ãçè§£ãæ·±ããããã«ã¯ã¾ãå®éã«æãåããã¦å¦ã¶ãã¨ãéå¸¸ã«æå¹ã§ããã¨æãã¾ããã
課é¡ã«åãçµãä¸ã§ããAPIã¨ã¯ä½ãï¼ãã¨ããææ§ãªç¶æ ããæãåºããGET/POSTã¡ã½ããã®å½¹å²ããã®ç®çã«ã¤ãã¦ãå ·ä½çã«çè§£ãããã¨ãã§ãã¾ããã
çè«ã ãã§ã¯ãªããå®éã«æãåãããã¨ã§ç¥èãå®è·µçã«èº«ã«ã¤ãã大åããæ¹ãã¦æãã¦ãã¾ãã
ä»å¾ãå¼ãç¶ãå®è·µãéããä¸ã§ç¥èãæ·±ããæ¥åã«æ´»ããã¦ããããã¨æãã¾ããã