[Feature]: Refactor `_determine_api_url` method in `Adyen/client.py`
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- backend-api-design, payments
Direzione di ricerca
Inizia in Adyen/client.py leggendo _determine_api_url e tracciando le chiamate API esistenti che dipendono da esso. Confronta gli approcci proposti a livello di servizio e basati sul nome del metodo prima di scegliere una mappatura centralizzata. Il lavoro è completato quando i controlli basati su stringhe sono rimossi, la determinazione dell’URL è più facile da estendere e tutte le chiamate API esistenti continuano a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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/elifstatements withinchecks 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:
- Service-level mapping: The service calling the client should be responsible for providing the correct and complete URL. The
_determine_api_urlmethod would then become a simple pass-through or perform minimal validation. - 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.
- Lingua principale
- Python
- Stelle
- 68
- Fork
- 51
- Merge medio
- 2h 3m
- PR unite (30g)
- 2
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Adyen/adyen-python-api-library
-
[Bug] api_*_version override has no effect on PAL-based service URLsForse già presa @cobanfurkanx l’ha presa 7 giorni fa. ApertaBug do not stale
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 45/100
Adyen/adyen-python-api-library#487 · 1 commento · 1 reazione ·
-
[Test] Add baseUrl environment tests to all service test filesForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertado not stale Test
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
-
chore: consolidate package metadata into pyproject.toml (PEP 621)Forse già presa @erdemtuna l’ha presa 188 giorni fa. Apertado not stale
Difficoltà 3/5 1-2 giorni Idoneità per principianti 72/100
-
[Bug]: Unknown properties return NoneForse già presa Una pull request collegata a questa issue è aperta o già unita. Apertado not stale
Difficoltà 2/5 1-3 ore Idoneità per principianti 48/100
Adyen/adyen-python-api-library#397 · 2 commenti ·
Tutte le issue di Adyen/adyen-python-api-library
Issue simili
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
openwisp/openwisp-utils#777 ·
-
Boolean statistics (Covered, Confident, JaccardDistant) aggregate to 1.0 without float weightsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 63/100
google-research/weatherbenchX#310 ·
I maintainer di solito rispondono entro 3 giorni
-
`unload()` returns the trained `modules_to_save` copy instead of the original moduleForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
huggingface/peft#3955 ·
I maintainer di solito rispondono entro 1 giorno
-
author-page correction
Difficoltà 2/5 1-3 ore Idoneità per principianti 60/100
acl-org/acl-anthology#10313 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
AOSSIE-Org/Gitcord-GithubDiscordBot#147 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno