Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

概要

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とか使いたい。
内容に間違いや不明な点があればご指摘ください。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away