Vous aviez raison : les routes devraient ĂȘtre auto-gĂ©rĂ©es par le framework !
Câest maintenant le cas. Zero ligne de routing manuel nĂ©cessaire.
src/server/ Créébuilder.rs - ServerBuilder (API fluente)entity_registry.rs - Registry des entitĂ©srouter.rs - GĂ©nĂ©ration routes de liensModule Ătendupub trait Module {
// ... méthodes existantes
// đ Nouvelle mĂ©thode
fn register_entities(&self, registry: &mut EntityRegistry);
}
Chaque entité fournit maintenant ses routes via un descriptor.rs.
340 lignes â 40 lignes (-88%)
// examples/microservice/main.rs
#[tokio::main]
async fn main() -> Result<()> {
let entity_store = EntityStore::new();
let module = BillingModule::new(entity_store);
// Toutes les routes sont auto-générées ici !
let app = ServerBuilder::new()
.with_link_service(InMemoryLinkService::new())
.register_module(module)?
.build()?;
let listener = tokio::net::TcpListener::bind("127.0.0.1:3000").await?;
axum::serve(listener, app).await?;
Ok(())
}
Câest tout ! Les routes CRUD pour Order, Invoice, Payment et toutes les routes de liens sont créées automatiquement.
| Aspect | Avant | AprĂšs |
|---|---|---|
| main.rs | 340 lignes | 40 lignes |
| Routing manuel | 30+ lignes par entité | 0 ligne |
| Déclaration routes | Manuelle et répétitive | Auto-générée |
| Ajouter entité | +30 lignes routing | 0 ligne routing |
$ cargo build --example microservice
Finished `dev` profile in 1.44s
â
$ cargo run --example microservice
đ Starting billing-service v1.0.0
đŠ Entities: ["order", "invoice", "payment"]
đ Server running on http://127.0.0.1:3000
$ curl http://localhost:3000/orders | jq '.count'
2
â
$ curl -X POST http://localhost:3000/orders \
-d '{"number":"ORD-TEST","amount":100}' | jq '.number'
"ORD-TEST"
â
âNous ne devrions Ă lâusage que loader/dĂ©clarer des modules et les routes devraient ĂȘtre auto-dĂ©clarĂ©es.â
â CâEST FAIT !
Le framework gĂšre maintenant automatiquement :
â
Routes CRUD pour toutes les entités
â
Routes de liens bidirectionnels
â
Routes dâintrospection
â
Configuration depuis YAML
â
Zero boilerplate dans lâusage
DĂ©clarer un module â Toutes les routes créées automatiquement ! đđŠâš