Course Overview:
The API Designing course will help you learn and get a hands-on experience creating well-designed, modular API definitions using RAML 1.0 and Anypoint Platform.
Course Objectives:
- Translate design requirements into API resources and methods.
- Use API designer to create API definitions.
- Use RAML to define API resources, methods, parameters, and responses.
- Document and test APIs.
- Minimize repetition in API definitions using resource types and traits.
- Model data in APIs using data types.
- Modularize APIs using libraries, overlays, and extensions.
- Specify API security schemes.
Pre-requisites:
- An understanding of HTTP protocol
- Web programming experience
Target Audience:
- API designers,
- Developers
- Architects
Course Duration:
- 14 hours – 2 days
Course Content:
Designing APIs
Module 1: Introducing RESTful API Design
- Describe the common web API formats including SOAP, RPC, and REST
- Describe REST API architecture
- List the rules for retaining REST principles in APIs
- Describe design-first approach for REST APIs
Module 2: Translating Functional Requirements for APIs
- Identify different categories and actions for a REST API
- Convert categories to resources
- Select HTTP methods to support the actions on the categories
Module 3: Introducing API-Led Connectivity and the API Lifecycle
- Describe the API development lifecycle
- Explain MuleSoft’s API-led connectivity approach
- Navigate Anypoint Platform
- Describe the API design lifecycle with Anypoint Platform
Defining APIs with the RESTful API Modeling Language (RAML)
Module 4: Defining API Resources and Methods
- Use RAML 1.0 to create API definitions
- Define resources and methods in RAML API definitions
- Specify URI parameters for necessary resource methods
Module 5: Specifying Responses
- Describe response structure in HTTP methods
- Use status codes in HTTP responses
- Add error handling and caching information to HTTP responses
- Select and specify the types of content returned in HTTP responses
Module 6: Documenting and Testing APIs
- Add documentation and description nodes to RAML definitions
- Use the mocking service to create API endpoints
- Use the API Console to test API endpoints
Module 7: Making APIs Discoverable
- Create API Portals for learning about and testing APIs
- Customize API Portals with themes
- Publish API definitions to the Anypoint Exchange for discovery
- Gather feedback from API consumers
Module 8: Modeling Data
- Create datatypes and their properties for resources
- Create examples for datatypes
- Include datatypes and examples in resource methods
- Create scenarios in API Notebook to manipulate data using datatypes and examples
Module 9: Reusing Patterns
- Create and reference resource types patterns for reusability
- Use traits to modularize methods
Module 10: Modularizing APIs
- Use libraries for greater API composability
- Use overlays to internationalize resources
- Use extensions to promote portability to test APIs in multiple environments
Module 11: Securing APIs
- Define API security requirements
- Use security schemes to apply resource and method level policies
- Define custom security schemes for APIs
- Apply an OAuth2.0 external provider policy to resource methods
Module 12: Enhancing API Responses using Hypermedia
- Describe hypermedia
- Simplify API discoverability using hypermedia
- Use hypermedia to enhance API responses
- Modify API definitions to generate state-specific client responses in resource method
Module 13: Versioning APIs
- Explain when and when not to version APIs
- Describe the methods for versioning APIs
- Document changes in new API versions using shared API Portals
- Deprecate older versions of APIs