Tutorials Microservices with .NET
Product Microservice — Complete Guide
Product Microservice — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of Microservices with .NET on Toolliyo Academy.
On this page
Microservices with .NET · Lesson 17 of 120
API Contracts
Beginner → Intermediate → Advanced → Professional
Beginner · 1 — Foundations · ~6 min · Module 2: Building Microservices
What is this?
API contracts are the agreed request/response shapes between services — JSON fields, URLs, status codes. Order.Api promises POST /orders returns { id, status }.
Why should you care?
Without contracts, Payment breaks when Order renames a field silently. Contracts let teams develop in parallel.
See it live — copy this example
Create a Web API project (dotnet new webapi), paste the code, then run dotnet run.
// ShopNest.Contracts/Orders/CreateOrderRequest.cs
public record CreateOrderRequest(
Guid CustomerId,
IReadOnlyList<OrderLineRequest> Lines);
public record OrderCreatedResponse(Guid Id, string Status, decimal Total);
// Order.Api implements exactly this shape
Run Example »
This lesson uses terminal or setup steps. Run commands on your computer — the live editor appears on coding lessons.
What happened?
- Shared contract project holds DTOs only — no database, no business logic.
- Version contracts when you must break clients.
Try it yourself
- Create ShopNest.Contracts class library.
- Add CreateOrderRequest and OrderCreatedResponse records.
- Reference Contracts from Order.Api and from a future Gateway.
- Change a string or number in the example and run again — predict the output first.
- Break the code on purpose (remove a semicolon), read the compiler error, then fix it.
Remember
Contracts = public DTOs between services. Keep contracts thin — no EF, no HTTP clients. Version when breaking; prefer additive changes.
Real-world: Mobile app + BFF
Android app depends on stable OrderCreatedResponse. Backend team adds field — old apps ignore it; never rename id to orderId without version.
Outcome: Contract tests in CI catch breaking JSON before production.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!