Magicode logo
Magicode
0
2 min read

【保存用】URLにクエリパラメータを付与する自作関数 (言語ごと)

まだJavascriptとPythonだけですが継続的に増やしていこうかなと思ってます

Javascript

// リクエストURLを生成する関数
function generateRequestUrl(endpoint, queryParams){
    if (!endpoint){
        throw "エンドポイントが指定されていません。";
    }

    var isFirstParam = true;
    var requestUrl = endpoint;

    // クエリパラメータの指定があれば付与
    if (queryParams){
        for (var param in queryParams){
            if (!queryParams[param]){
                return true;
            };

            var delimiter = (isFirstParam ? '?' : '&');
            requestUrl = requestUrl + delimiter + param + '=' + String(queryParams[param]);
            isFirstParam = false;
        };
    };
    return requestUrl
}


//var url = 'https://api.bitflyer.com/v1/executions';

var queryParams = {
  'product_code': 'BTC_JPY',
  'count': 10
};

console.log(generateRequestUrl(url, queryParams));

https://api.bitflyer.com/v1/executions?product_code=BTC_JPY&count=10

Python

# リクエストURLを生成する
def generateRequestUrl(endpoint, queryParams):

    if not endpoint:
        raise ValueError("エンドポイントが指定されていません。")

    isFirstParam = True
    requestUrl = endpoint

    # クエリパラメータの指定があれば付与
    if queryParams:
        for param in queryParams:
            if not queryParams[param]:
                continue

            delimiter = '?' if isFirstParam else '&'
            requestUrl = requestUrl + delimiter + param + '=' + str(queryParams[param])
            isFirstParam = False

    return requestUrl

  
# 例
url = 'https://api.bitflyer.com/v1/executions';

queryParams = {
  'product_code': 'BTC_JPY',
  'count': 10
};

print(generateRequestUrl(url, queryParams));

https://api.bitflyer.com/v1/executions?product_code=BTC_JPY&count=10

閲覧いただきありがとうございました。みなさんのお役に立てましたら幸いです!

コメントやいいねしていただけますと励みになります☺️

Discussion

コメントにはログインが必要です。