Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

[Feature]: Refactor `_determine_api_url` method in `Adyen/client.py`

オープン
#395 コメント 0 件 リアクション 1 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
リファクタリング
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
python

調査の方向性

Adyen/client.py で _determine_api_url を読み、これに依存する既存の API 呼び出しを追跡することから始めます。集中型のマッピングを選択する前に、提案されているサービスレベルのアプローチとメソッド名ベースのアプローチを比較します。文字列ベースのチェックが削除され、URL の判定を拡張しやすくなり、既存のすべての API 呼び出しが引き続き機能すれば完了です。

索引モデルが issue の本文から書いたものです。

説明

do not stale Feature
Feature summary

No response

Problem statement

The _determine_api_url method in Adyen/client.py is fragile and difficult to maintain. It relies on string manipulation and hardcoded values to determine the correct API endpoint URL. This makes it prone to errors and difficult to extend.

Problem:

  • The current implementation uses a series of if/elif statements with in checks on the endpoint string. This is not robust and can break if endpoint names change.
  • It has special logic for "pal-" and "checkout-" prefixes, including hardcoded URLs.
Proposed solution

The logic for determining the correct endpoint URL should be more robust and centralized. Here are two potential approaches:

  1. Service-level mapping: The service calling the client should be responsible for providing the correct and complete URL. The _determine_api_url method would then become a simple pass-through or perform minimal validation.
  2. Method-name-based mapping: Instead of relying on URL substrings, the client could use the service and method names to look up the correct endpoint from a structured configuration or map. This would decouple the logic from the specific URL structure.
Alternatives considered

Another alternative is to rely on the "servers" field of OpenAPI specs, but currently those don't contain mappings for all environments

Additional context

Acceptance Criteria:

  • Remove the string-based checks in _determine_api_url.
  • Implement a more robust mechanism for URL determination.
  • Ensure all existing API calls continue to work correctly.
  • The new implementation should be easier to read, maintain, and extend for future services.
主要言語
Python
スター
68
フォーク
51
平均マージ
2時間 3分
マージ済み PR(30日)
2

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

Adyen/adyen-python-api-library のほかの issue

Adyen/adyen-python-api-library の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。