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 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:
- HTTP, REST, JSON & Status Codes
- Insomnia quick-start
- GitHub Copilot quick-start — for the Lesson 7 code-review lesson
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
Authorizationheader or see a401 - All passwords in the seed data use the plaintext:
test1234