[{"data":1,"prerenderedAt":100},["ShallowReactive",2],{"project-axum-ecommerce-api":3},{"id":4,"title":5,"body":6,"date":80,"description":81,"extension":82,"featured":83,"github":67,"image":84,"live":84,"meta":85,"navigation":83,"path":86,"role":87,"seo":88,"status":89,"stem":90,"tags":91,"updated":84,"__hash__":99},"projects\u002Fprojects\u002Faxum-ecommerce-api.md","Axum Ecommerce API",{"type":7,"value":8,"toc":72},"minimark",[9,14,18,22,44,48,51,54,58,61],[10,11,13],"h2",{"id":12},"from-signup-to-checkout","From signup to checkout",[15,16,17],"p",{},"An ecommerce REST API built with Rust, Axum, Tokio, and PostgreSQL. It connects account authentication, the product catalog, shopping carts, order creation, and Paystack payment processing in one backend.",[10,19,21],{"id":20},"core-features","Core features",[23,24,25,29,32,35,38,41],"ul",{},[26,27,28],"li",{},"JWT access and refresh tokens, password hashing, and customer\u002Fadmin access controls.",[26,30,31],{},"Product listings with search and filters, admin management, and soft deletion.",[26,33,34],{},"Shopping carts with quantity updates and ownership checks.",[26,36,37],{},"Orders created from carts, with stock updates inside a database transaction.",[26,39,40],{},"Paystack payment initialization, verification, and webhook handling.",[26,42,43],{},"OpenAPI documentation generated with Utoipa, alongside Swagger UI.",[10,45,47],{"id":46},"orders-and-payment-events","Orders and payment events",[15,49,50],{},"Checkout checks stock availability while updating inventory inside the order transaction. If an item has insufficient stock, order creation fails and the transaction rolls back.",[15,52,53],{},"The payment webhook verifies Paystack's HMAC-SHA512 signature before handling an event. An event table tracks payment references and event types to skip duplicate deliveries.",[10,55,57],{"id":56},"structure-and-verification","Structure and verification",[15,59,60],{},"Routes, handlers, models, authentication, and services live in separate modules. SQLx manages database queries and migrations; integration tests use isolated PostgreSQL databases to exercise auth, products, orders, and payment flows.",[15,62,63,64,71],{},"Explore the ",[65,66,70],"a",{"href":67,"rel":68},"https:\u002F\u002Fgithub.com\u002FIbrahimIjai\u002Frust_ecommerce",[69],"nofollow","source, API reference, and setup guide",".",{"title":73,"searchDepth":74,"depth":74,"links":75},"",2,[76,77,78,79],{"id":12,"depth":74,"text":13},{"id":20,"depth":74,"text":21},{"id":46,"depth":74,"text":47},{"id":56,"depth":74,"text":57},"2026-03-04","A Rust ecommerce backend with JWT authentication, product and cart management, transactional orders, and Paystack payments.","md",true,null,{},"\u002Fprojects\u002Faxum-ecommerce-api","Backend developer",{"title":5,"description":81},"Released","projects\u002Faxum-ecommerce-api",[92,93,94,95,96,97,98],"Rust","Backend","Axum","SQLx","PostgreSQL","Paystack","OpenAPI","4RNzEJ7FjVUyckI1K9Y0DT3vvLNLiMV_sSQ757y2RJM",1791997975380]