Courses and certifications Dev & Test
REST API Design
Price (without VAT)
Moving in today's world of mobile applications, Internet services, cloud solutions, microservices, and so on, you could not find the concept of REST APIs. They all use them, they all love them, they all have a strong opinion on what is and is not REST. This course will try to get you closer to what their magic is.
First, let's get to know what REST APIs are, where they came from, on which principles they are built. Then we will focus on practical aspects of design and development. We start from the very foundations and gradually work on more complicated issues such as authentication, versioning or security. We will design a simple API together and show how such simple APIs can provide unexpected problems and complications. We will also go through the next phase of the development cycle, testing, deployment and operation. Finally, we will show why it is important to look at APIs as a "first class" product.
Audience
- Backend developers
- Fullstack developers
- Software Architects
- IT Professionals
- The course is suitable for both beginners and advanced learners.
Goals
Participants also learn:
- Web Services Design Principles.
- Theoretical foundations of REST architecture.
- What is an API contract, "specification first" access.
- Proposal REST APIs Practical Approach, Best Practices.
- Authentication, security, versioning, error handling at REST API.
- Solving practical problems around design and development of web services.
- Comprehensive view of API as a product from design to operation.
Outline
Introduction
- History of CORBA web services
- XMLRPC
- SOAP, ...
Generic principles for web service design
- API Contract
- Reusable, DX ("developer experience")
- Abstraction, encapsulation, "loose coupling"
- Consistency, convention
- Stateful vs. stateless
Introduction to REST
- What is it?
- Definitions by Roy Fielding
- Richardson Maturity Model
- Amundsen Maturity Model
- What is REST and why not?
REST basics
- Terminology
- Resource model
- Data representation
- HTTP as a carrier protocol
- Hypermedia (HATEOAS)
Error processing
- Basic principles
- Standards and error response formats
- Error processing from a client perspective
Versioning
- Versioning is not "RESFful"
- Three "bad" versions of the game
- Evolution as an alternative to versioning
Authentication and Authorization
- Client vs. user authentication
- Traditional access to sessions
- "Basic auth" authentication
- OAuth2
- OpenID Connect
Safety
- Přenos dat
- Ošetření vstupu
- Zpracování citlivých údajů
- Síťová bezpečnost
Caching
- HTTP options
- Caching strategy
- Basic problems
API contract and "specificationfirst" principle
- What is an API contract?
- Benefits of using the API specification
- Formats for the OAS API specification
- API Blueprint
Fundamentals of development
- IDE Developer Environment
- VCS, production / non-production environment
- Configuration
- Code style
- Standards and conventions
Testing
- Types of testing
- Functional "black box" testing
- Generated tests
- "Performance" testing
- Safety tests
Continuous integration / delivery
- Assumptions
- Automation of development
- Deployment
API infrastruktura
- Hosting
- API gateway
- Monitoring and logging
- Safety
API as a product
- Life cycle"
- agile "and Dev (Sec) Ops
- Client orientation prototypes, feedback
- Developer Experience (DX) API documentation, Sandbox, community
Analytics
Prerequisites
- Basic experience with designing and developing applications
- HTTP basics
- Knowledge of programming languages is an advantage
- Previous experience with designing and developing web services is an advantage
Inquire course
Reviews
First and foremost, Milton demonstrated an impressive level of professionalism and expertise throughout the entire training. The structure of the lesson was perfectly prepared, and it was evident that careful thought had gone into organizing the content. This made it easy for me to follow along and grasp the concepts being presented.
One of the standout qualities of Milton was his ability to engage with the class. He not only answered all our questions patiently and thoroughly but also encouraged active participation from everyone. This interactive approach made the learning process enjoyable and kept our attention fully focused throughout the session.
What made the training truly outstanding was the way in which complex information and knowledge about REST API were conveyed. Milton had a knack for presenting the material in an interesting and comprehensible manner. This skillful teaching style made the lesson not only informative but also enjoyable.
Moreover, the lesson was far from being a monotonous lecture. It was interactive and filled with practical examples that allowed us to apply what we were learning in real-time. This hands-on approach added immense value to the training and made it clear that Milton possesses not only theoretical knowledge but also practical experience in the field.
Overall, I am extremely satisfied with the course and the knowledge I gained from it. It's evident that our tutor is not only an expert in the subject matter but also a skilled educator who knows how to make learning engaging and effective. The knowledge I acquired during this training will undoubtedly be invaluable in my work, and I am grateful for the opportunity to learn from such a talented instructor.
I highly recommend this training to anyone seeking a comprehensive and engaging learning experience in the realm of REST API. Thank you to Milton for an outstanding job!!!!
Štěpánka Netrhová, Trask