Bu sayfa Cluster ERP yollarının paylaştığı kuralları belirtir: yöntemler ve durum kodları, liste sayfalaması, arama ve filtreler, kimlikler, para değerleri, silme yerine kullanımdan kaldırma, toplu işlemler, eylem uç noktaları ve iyimser eşzamanlılık. Bu sayfadaki sayılar src/cluster_erp/modules/ ve src/cluster_erp/server/routes/ içindeki 1.364 yolu kapsar ve modül sayfalarıyla aynı taramadan gelir. src/cluster_erp/server/app.py içinde bildirilen yedi yol Sistem uç noktaları sayfasındadır.
Yöntemler¶
| Yöntem | Yollar | Kullanım | Örnek |
|---|---|---|---|
GET |
510 | listeleme, okuma ve okuma modelleri | src/cluster_erp/modules/inventory/warehouses/routes.py:66 |
POST |
531 | oluşturma, eylemler, toplu işlemler ve hesaplamalar | src/cluster_erp/modules/inventory/warehouses/routes.py:108 |
PUT |
158 | bir kaydı güncelleme | src/cluster_erp/modules/inventory/warehouses/routes.py:132 |
PATCH |
8 | sales_orders içinde ve kiracı alanlarında kısmi güncelleme ve bir MRP kalem eylemi |
src/cluster_erp/modules/sales_orders/orders/routes.py (update_order) |
DELETE |
157 | bir kaydı kullanımdan kaldırma veya bağımlı bir satırı kaldırma | src/cluster_erp/modules/inventory/warehouses/routes.py:146 |
263 yolda koleksiyon yolları eğik çizgiyle biter; örneğin /api/v1/inventory/warehouses/ (src/cluster_erp/modules/inventory/warehouses/routes.py:66). Modül sayfaları her yolun tam yolunu gösterir.
Durum kodları¶
| Durum | Bildiren yollar | Bu API'deki anlamı | Örnek |
|---|---|---|---|
201 |
201 | bir kayıt oluşturuldu | src/cluster_erp/modules/inventory/warehouses/routes.py:108 |
202 |
5 | iş kabul edildi ve sürüyor; örneğin bir kayıt veya arka planda MRP çalıştırması | src/cluster_erp/server/routes/signup.py:146 |
204 |
145 | gövdesiz başarı, çoğunlukla kullanımdan kaldırma | src/cluster_erp/modules/inventory/warehouses/routes.py:146 |
| bildirilmemiş | 1.013 | başarılı yanıt için çatının varsayılanı; modül sayfaları bunu 200 (varsayılan) olarak gösterir |
bkz. FastAPI başvurusu |
Bazı işleyiciler kendi Response nesnesini döndürür ve durumu orada belirler; örneğin oturum kapatma (src/cluster_erp/modules/auth/login/routes.py:373-432). Hata durumları Hatalar sayfasında listelenir.
Sayfalama¶
Liste yolları limit ve offset sorgu parametrelerini alır (111 yol limit, 105 yol offset alır). Her yol sınırlarını Query(...) içinde kendisi belirler; örneğin depo listesi varsayılan 50, en az 1 ve en çok 200 kullanır (src/cluster_erp/modules/inventory/warehouses/routes.py:66-73).
Sayfalanan bir liste bir zarfla yanıt verir. src/cluster_erp/modules/inventory/warehouses/routes.py:84-96 içinden:
return {
"items": await redact_extra_items(
session,
[WarehouseListRead.model_validate(w) for w in items],
"warehouse",
"warehouse",
await actor_allowed(session),
),
"total": total,
"total_capped": svc.last_count_capped,
"limit": limit,
"offset": offset,
}
| Alan | Anlam | Kaynak |
|---|---|---|
items |
satırların sayfası | src/cluster_erp/modules/inventory/warehouses/routes.py:85-91 |
total |
tavana kadar sayılan satır sayısı | src/cluster_erp/core/pagination.py:33-69 |
total_capped |
sayım tavanda durduysa true |
src/cluster_erp/core/pagination.py:65-68 |
limit, offset |
isteğin kullandığı değerler | src/cluster_erp/modules/inventory/warehouses/routes.py:94-95 |
Tavan list_count_cap ayarıdır; 0 tam sayım demektir (src/cluster_erp/config/settings.py:324, src/cluster_erp/core/pagination.py:27-30). Her liste yolu bu zarfı kullanmaz: response_model=list[...] taşıyan yollar çıplak bir dizi döndürür. Modül sayfaları her yolun yanıt modelini gösterir.
Arama ve filtreler¶
| Parametre | Yollar | Anlam | Örnek |
|---|---|---|---|
search |
93 | varlığın arama sütunlarında serbest metin araması | src/cluster_erp/modules/inventory/warehouses/routes.py:66-69 |
status |
46 | bir durum alanına göre filtre | modül sayfaları |
active_only |
35 | yalnız etkin satırlar | modül sayfaları |
is_active |
6 | is_active bayrağına göre filtre |
src/cluster_erp/modules/inventory/warehouses/routes.py:70 |
include_inactive |
6 | kullanımdan kaldırılmış satırları dahil et | modül sayfaları |
extra.<key> |
kiracı alanlarını okuyan listeler | kiracı tanımlı bir alan değerine göre filtre | src/cluster_erp/core/tenant_fields.py:2292-2303 |
Hiçbir yol sıralama için adlandırılmış bir parametre almaz: tüm sorgu parametresi adlarının taranmasında sort veya order_by içeren bir ad bulunmadı. Bir listenin sırası hizmeti tarafından sabitlenir. Arama motoru Arama, sayfalama ve toplu işlemler sayfasında anlatılır.
Kimlikler¶
{warehouse_id} gibi yol kimlikleri UUID'dir. BaseModel sınıfından türeyen her model birincil anahtarını new_ulid ile alır; kimlikler UUID olarak saklanan ULID değerleridir (src/cluster_erp/core/models.py:20-24). Kimlik şeması Temel model ve kimlikler sayfasında anlatılır. Birkaç yol bunun yerine bir kod veya anahtar alır; örneğin posta OAuth uygulamalarında {provider} ve operatör konsolunda {key} (modül sayfaları ve Sistem uç noktaları).
Para değerleri¶
Projenin yazılı mühendislik kuralları para için Decimal, veritabanında Numeric ve JSON'da dizge ister. Modül şemaları 55 schemas.py dosyasında Decimal açıklamalı 774 alan veya parametre bildirir (src/cluster_erp/modules/**/schemas.py içinde : Decimal ile eşleşen satır sayısı). Bazı okuma şemaları açık bir dizge serileştiricisi bildirir; örneğin ExchangeRateRead (src/cluster_erp/core/currencies.py:186-190). Genel kayıt yolları Decimal değerini kendisi dizgeye çevirir (src/cluster_erp/modules/records/lifecycle_routes.py:47-57).
response_model=dict taşıyan her yolun Decimal değerlerini dizge olarak gönderip göndermediği koddan belirlenemedi; bu sayfa response_model=dict bildiren 323 yolun her birini denetlemedi. İstemciler parayı JSON dizgesi olarak gönderir; Decimal alanı bunu kabul eder. Kural Para ve ondalık sayfasında anlatılır.
Silme yerine kullanımdan kaldırma¶
Bir kayıt yolundaki DELETE kaydı kullanımdan kaldırır: hizmet deleted_at değerini yazar ve yol 204 yanıtlar (src/cluster_erp/modules/inventory/warehouses/services.py:137-143, src/cluster_erp/modules/inventory/warehouses/routes.py:146-154). Listeler deleted_at değeri dolu satırları dışarıda bırakır (src/cluster_erp/modules/inventory/warehouses/services.py:47). İstemci nedeni ve notu X-Deact-Reason ve X-Deact-Note başlıklarıyla gönderebilir; değişiklik geçmişi onları satıra basar (src/cluster_erp/server/dependencies.py:63-72).
Kullanımdan kaldırılmış satırlar genel kayıt yollarıyla okunur ve yeniden etkinleştirilir: GET /api/v1/records/{module}/{entity}/inactive, GET /api/v1/records/{module}/{entity}/labels ve POST /api/v1/records/{module}/{entity}/{record_id}/activate (src/cluster_erp/modules/records/lifecycle_routes.py:113-240). Kural Geçici silme ve kullanımdan kaldırma sayfasında anlatılır.
Toplu işlemler¶
72 yol /bulk-delete ile biter. ids taşıyan BulkDeleteRequest alırlar ve deleted_count taşıyan BulkDeleteResponse yanıtlarlar (src/cluster_erp/core/bulk_operations.py:12-17). bulk_soft_delete yardımcısı her satırı ORM üzerinden yükler ve deleted_at yazar; böylece her satır değişiklik geçmişine düşer (src/cluster_erp/core/bulk_operations.py:20-57).
BulkDeleteRequest (src/cluster_erp/core/bulk_operations.py:12-13) şemasından kurulan örnekleyici istek:
POST /api/v1/bom/boms/bulk-delete HTTP/1.1
Host: erp.example.com
Authorization: Bearer <access_token>
Content-Type: application/json
{
"ids": ["<bom_id>", "<bom_id>"]
}
Yukarıdaki yol yalnız biçimi gösterir; hangi varlıkların toplu yolu olduğunu modül sayfaları listeler.
Eylem uç noktaları¶
Durum değişiklikleri bir güncelleme gövdesindeki alanlar değil, ayrı POST yollarıdır. İki biçim vardır:
| Biçim | Örnek | Kaynak |
|---|---|---|
| kayıt yolundan sonra bir fiil | POST /api/v1/costing/analyses/{analysis_id}/approve |
src/cluster_erp/modules/costing/costing_analyses/routes.py (approve_analysis) |
| genel bir eylem bölümü | POST /api/v1/fleet/assets/{asset_id}/actions/{action} (43 yol /actions/ içerir) |
src/cluster_erp/modules/fleet/assets/routes.py (run_asset_action) |
İyimser eşzamanlılık¶
Her modelin bir version sütunu vardır (src/cluster_erp/core/models.py:73). Birçok varlığın güncelleme şeması bir version alanı taşır; hizmet check_version çağırır ve değerler farklıysa bu fonksiyon CONCURRENCY_VERSION_CONFLICT, details.expected_version ve details.current_version ile 409 atar (src/cluster_erp/core/errors.py:411-430). Tarama bu kodun 60 atma konumunu buldu. version taşımayan bir istek denetimi atlar (src/cluster_erp/core/errors.py:428-430).
Kiracı alanı değerleri¶
Kiracı tanımlı alanları destekleyen okuma şemaları onları extra içinde taşır; yol yanıt vermeden önce çağıranın göremeyeceği değerleri redact_extra ve redact_extra_items ile çıkarır (src/cluster_erp/core/tenant_fields.py:2478, src/cluster_erp/modules/inventory/warehouses/routes.py:53-63). Mekanizma Kiracı alanları sayfasında anlatılır.
Tanıtılan terimler¶
| Terim | Kod tanımlayıcısı | Tanım | Türkçe terim | Kaynak |
|---|---|---|---|---|
| list envelope | items, total, total_capped, limit, offset |
Sayfalanan bir liste yolunun döndürdüğü nesne. | liste zarfı | src/cluster_erp/modules/inventory/warehouses/routes.py:84-96 |
| count cap | list_count_cap |
Bir liste sayımının durduğu ve total_capped bildirdiği satır sayısı. |
sayım tavanı | src/cluster_erp/config/settings.py:324 |
| bulk deactivation | BulkDeleteRequest |
Bir kimlik listesini kullanımdan kaldıran POST .../bulk-delete çağrısı. |
toplu kullanımdan kaldırma | src/cluster_erp/core/bulk_operations.py:12-17 |
İlgili sayfalar¶
- API başvurusu
- API'ye genel bakış
- Hatalar
- Arama, sayfalama ve toplu işlemler
- Geçici silme ve kullanımdan kaldırma
- Para ve ondalık
92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.