Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / API referansı

Referans

API kuralları

Cluster ERP API'sinde yöntemler, durum kodları, sayfalama, arama ve filtreler, kimlikler, para, geçici silme, toplu işlemler, eylem uç noktaları ve eşzamanlılık.

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


92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.

Doğrulanan commit 92f8051 · 2026-11-13