A learning resource covering XML and how modern APIs actually work. Covers REST, GraphQL, gRPC, security, and API design.
Created by students, for students.
Weeks 1-6: XML fundamentals—DTD, XSD, XPath, XSLT, DOM/SAX parsing
Weeks 7-13: Modern web—REST APIs, OpenAPI specs, SOAP, GraphQL, gRPC, authentication
- How to read and write XML properly
- How REST actually works (it's just HTTP rules)
- How GraphQL is different from REST and why you'd use it
- How to design APIs that don't break when you change them
- Basic API security—JWT tokens, OAuth
-
Install Node.js if you want to run the JavaScript examples
-
Follow the weeks in order or jump to what you need
-
Code as you go—the real learning is in the examples
For JavaScript examples:
npm install
node week07_rest/01_rest_with_node.js- JavaScript code files with working examples (Node.js)
- Real code you can run and modify
- Week-by-week structure with progression
- References for deeper learning
- VS Code (or any text editor)
- Python 3.x (optional)
- Node.js (optional)
- Postman or curl (for testing APIs)
Everything is organized by week so you have a clear path. But you don't have to follow it—jump to whatever interests you. Each week stands mostly on its own.
See GETTING_STARTED.md for detailed setup instructions.
To test your understanding, each section includes:
- Practice assignments with solutions
- Real-world XML examples
- API consumption challenges
- Design projects to build your skills
These are self-paced and designed to help you learn, not for formal grading. Work through them as you go through each week.
-
Clone this repository
-
Install Python dependencies:
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate pip install -r requirements.txt
-
Start with Week 1
xml_and_web_services/
├── README.md
├── GETTING_STARTED.md
├── requirements.txt
├── package.json
├── week01_foundations/
│ ├── README.md
│ └── examples/
├── week02_dtd_namespaces/
│ ├── README.md
│ └── examples/
├── [... other weeks ...]
└── resources/
├── cheatsheets/
└── additional_reading/
Each week's folder contains:
- README.md - Week overview and learning objectives
- JavaScript files (.js) - Working code examples (weeks 7, 11)
- Markdown files (.md) - Theory and conceptual content
- examples/ - Sample files and code demonstrations
- exercises/ - Practice problems with solutions
If you have questions or need clarification:
- Review the week's README first
- Check the examples folder
- Refer to recommended textbooks
- Consult online resources
This educational material is provided for learning purposes.
Last Updated: 26/03/2026