Bu sayfa procurement modülünün substitution_groups alt modülündeki 10 uç noktayı /api/v1/procurement altında listeler. Kapsam: İkame grupları, ürüne göre okuma ve grup üyeleri. Modül giriş sayfası Procurement API sayfasıdır.
Grup olguları¶
| Öğe | Değer | Kaynak |
|---|---|---|
| Temel yol | /api/v1/procurement |
src/cluster_erp/core/module_base.py:37-38, src/cluster_erp/modules/procurement/module.py:70 |
| Yönlendiriciler | 1 dosyada 1 yönlendirici nesnesi; Uç noktalar bölümünde listelenir | src/cluster_erp/modules/procurement/module.py:35 |
| Uç noktalar | 10; register_routes ile bağlanan yönlendiricilerin yol dekoratörleri ve add_api_route çağrılarından sayıldı |
src/cluster_erp/modules/procurement/substitution_groups/routes.py |
| Kimlik doğrulama | Bearer başlığı veya oturum çerezi, get_current_user ile çözülür; bkz. Kimlik doğrulama ve başlıklar |
src/cluster_erp/modules/auth/guards.py:85-167 |
| Yetki koruması | 10 yolun 10 tanesi require_permission bildirir |
src/cluster_erp/modules/auth/guards.py:205-240 |
| Uygulama yetkilendirme kapısı | bağlanan her yönlendiricide require_app("procurement") |
src/cluster_erp/modules/procurement/module.py:82 |
| Hata biçimi | JSON gövdesi {"error": {...}}; bkz. Hatalar |
src/cluster_erp/server/error_handler.py:33-46 |
Uç noktalar¶
| Yöntem | Yol | İşleyici | Yetki | İstek | Sorgu | Yanıt | Durum | Kaynak |
|---|---|---|---|---|---|---|---|---|
GET |
/api/v1/procurement/substitution-groups/ |
list_substitution_groups |
substitution_group.read |
yok | search, is_active, limit, offset |
dict |
200 (varsayılan) | src/cluster_erp/modules/procurement/substitution_groups/routes.py:30 |
POST |
/api/v1/procurement/substitution-groups/ |
create_substitution_group |
substitution_group.create |
SubstitutionGroupCreate |
yok | SubstitutionGroupRead |
201 |
src/cluster_erp/modules/procurement/substitution_groups/routes.py:56 |
GET |
/api/v1/procurement/substitution-groups/by-product/{product_id} |
get_groups_by_product |
substitution_group.read |
yok | yok | list[SubstitutionGroupRead] |
200 (varsayılan) | src/cluster_erp/modules/procurement/substitution_groups/routes.py:68 |
POST |
/api/v1/procurement/substitution-groups/bulk-delete |
bulk_delete_substitution_groups |
substitution_group.bulk_delete |
BulkDeleteRequest |
yok | BulkDeleteResponse |
200 (varsayılan) | src/cluster_erp/modules/procurement/substitution_groups/routes.py:80 |
GET |
/api/v1/procurement/substitution-groups/{group_id} |
get_substitution_group |
substitution_group.read |
yok | yok | SubstitutionGroupRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/substitution_groups/routes.py:92 |
PUT |
/api/v1/procurement/substitution-groups/{group_id} |
update_substitution_group |
substitution_group.update |
SubstitutionGroupUpdate |
yok | SubstitutionGroupRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/substitution_groups/routes.py:106 |
DELETE |
/api/v1/procurement/substitution-groups/{group_id} |
delete_substitution_group |
substitution_group.delete |
yok | yok | yok | 204 |
src/cluster_erp/modules/procurement/substitution_groups/routes.py:119 |
POST |
/api/v1/procurement/substitution-groups/{group_id}/members |
add_member |
substitution_group.create |
SubstitutionMemberCreate |
yok | SubstitutionMemberRead |
201 |
src/cluster_erp/modules/procurement/substitution_groups/routes.py:131 |
PUT |
/api/v1/procurement/substitution-groups/{group_id}/members/{member_id} |
update_member |
substitution_group.update |
SubstitutionMemberUpdate |
yok | SubstitutionMemberRead |
200 (varsayılan) | src/cluster_erp/modules/procurement/substitution_groups/routes.py:148 |
DELETE |
/api/v1/procurement/substitution-groups/{group_id}/members/{member_id} |
remove_member |
substitution_group.delete |
yok | yok | yok | 204 |
src/cluster_erp/modules/procurement/substitution_groups/routes.py:165 |
Hata kodları¶
Tablo, src/cluster_erp/modules/procurement/substitution_groups/ altındaki kodun attığı hata kodlarını listeler. Kodlar, AppError(...) çağrıları, src/cluster_erp/core/errors.py içindeki fabrikalar (not_found, conflict, protected, permission_denied, privilege_escalation, check_version) ve HTTPException(...) için yapılan bir sözdizimi ağacı taramasıyla bulundu. 400 durumu AppError varsayılanıdır (src/cluster_erp/core/errors.py:23). Koruma hataları (401, 403), yetkilendirme kodları ve doğrulama hataları (422) her yol için geçerlidir ve Hatalar sayfasında listelenir.
| Kod | HTTP durumu | Atıldığı yer | İlk konum |
|---|---|---|---|
CONCURRENCY_VERSION_CONFLICT |
409 |
services |
src/cluster_erp/modules/procurement/substitution_groups/services.py:159 |
RESOURCE_NOT_FOUND |
404 |
routes, services |
src/cluster_erp/modules/procurement/substitution_groups/routes.py:102 |
SUBSTITUTION_GROUP_DUPLICATE_PRODUCT |
409 |
services |
src/cluster_erp/modules/procurement/substitution_groups/services.py:221 |
SUBSTITUTION_GROUP_SINGLE_MEMBER |
400 |
services |
src/cluster_erp/modules/procurement/substitution_groups/services.py:317 |
İlgili sayfalar¶
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.