Skip to content

API Concepts — Lesson Materials

This folder contains the lesson materials for the Web API pass (Lessons 1–7). It starts with a no-code foundations lesson — how web apps talk over HTTP, REST/JSON, status codes, and Insomnia — then builds the TableServe Web API one entity at a time, and closes with a tooling lesson on reviewing your code with GitHub Copilot.

File types

lesson-{N}-guide-*.md — the concept reference (I do). Read through this during the instructor-led session. It explains the concepts being taught with code examples and a step-by-step build walkthrough. Keep it open as a reference.

lesson-{N}-lab-*.md — the hands-on exercise (You do). Use this to build a similar feature independently. Instructions are intentionally terse — refer back to the guide and what you built alongside it as your model.

Schedule

Lesson Guide Lab
1 How web apps talk: architecture, HTTP/REST/JSON, Insomnia DevTools & Insomnia exploration
2 Project setup, controllers, EF DbContext CategoriesController
3 Full CRUD: POST/PUT/DELETE MenuItemsController CRUD
4 Nested data, Include(), FK lookups OrdersController with OrderItems
5 Side-effect recalculation, workflow endpoints Order status workflow endpoints
6 Error handling, Insomnia, Login PRS backend capstone begins
7 Reviewing your code with GitHub Copilot Review your PRS API with Copilot

Lesson 1 is a no-code foundations lesson — you explore real HTTP traffic in the browser and drive a public API in Insomnia, with no Visual Studio project. The TableServe build starts in Lesson 2.

Lesson 7 is a tooling lesson on GitHub Copilot (TQL's preferred AI assistant), taught at the boundary into the capstone. The guide teaches the review-and-triage skill on a TableServe controller; the lab turns it on the PRS backend you build in the capstone — so it's the first deliberate use of AI in the course, on code you wrote by hand.

Reference cheat sheets

Evergreen cheat sheets in ../reference/ back this pass — skim the first two in Lesson 1 and keep them open throughout; the Copilot sheet comes in with Lesson 7:

Stretch challenges

Finished a lab early? Each lab ends with a short Stretch challenges section tied to that lesson's concept. For bigger challenges that span the whole pass — a reports controller, a new FK entity, pagination, and AI-assisted seed data — see Stretch challenges. None of it is required for the capstone; it's optional extra practice, tagged [Reinforce] (builds on the guide) or [Reach] (goes past it, with a reference link to research).

Tips

  • The guide and lab always use the TableServe domain (Staff, Categories, MenuItems, Orders, OrderItems)
  • Fuzzy on the vocabulary — class vs. object vs. method vs. parameter vs. field vs. local variable? Keep Anatomy of C# Code (with a blank quiz) and the C# naming conventions sheet open from Lesson 2 on — they name every part of a real controller and model
  • After the API pass you will build the PRS backend independently using TableServe as your reference — the same way the labs use the guide as a model
  • This course has no JWT/token authentication — login returns the user object and every endpoint is open, so you never send an Authorization header or see a 401
  • All passwords in the seed data use the plaintext: test1234