LoginSignup
0
2

More than 5 years have passed since last update.

URLから取得したクエリを利用してAPIを呼び出す

Posted at

概要

APIのパラメータ設定が面倒で、URLから取れないかなぁと思って試しました。
Redmineのチケットをフィルタリングする部分で利用しました。
Redmine APIのissue.filter関数以外でこの方法を使用できるかどうかは未知数です。
誰か試したら教えてください。

内容

urllibのparse関数を利用します。

get_query.py
import urllib.parse
import re

def get_params(query_url):
    # URLをパースする
    parsed_url = urllib.parse.urlparse(query_url)
    # クエリ部分をさらにパースする
    parsed_query = urllib.parse.parse_qs(parsed_url.query)
    # Redmine APIはプロジェクトidも必要なのでページパスから取得します。
    parsed_query['project_id'] = re.findall(r"projects/(.+?)/issues", query_url)
    return parsed_query
main.py
from redminelib import Redmine

redmine = Redmine("http://your redmine home URL", key="your access api key")
query_url = r"http://your redmine query URL"

#get_params関数の返り値は辞書型で帰ってくるので、可変長引数(**)を利用してAPIへ渡します。
issue_list = redmine.issue.filter(**get_params(query_url))
print(issue_list)

参考

最後に

またRedmineネタだけどほんとはJiraとか使いたい。
内容に間違いや不明な点があればご指摘ください。

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