REST APIs with Flask

  1. Fundamentals of REST
    1. Definition and History of REST
      1. Roy Fielding's Dissertation
        1. Architectural Style vs Protocol
          1. REST vs RESTful
          2. Core Principles of REST
            1. Client-Server Separation
              1. Benefits and Implications
                1. Independent Evolution
                2. Statelessness
                  1. Definition and Impact
                    1. Scalability Benefits
                      1. Session Management
                      2. Cacheability
                        1. HTTP Caching Mechanisms
                          1. Cache Headers
                            1. Performance Benefits
                            2. Layered System
                              1. Intermediaries and Proxies
                                1. Load Balancers
                                  1. API Gateways
                                  2. Uniform Interface
                                    1. Resource Identification
                                      1. URI Design Principles
                                        1. Resource Naming Conventions
                                        2. Resource Manipulation through Representations
                                          1. JSON Representations
                                            1. XML Representations
                                              1. Content Negotiation
                                              2. Self-Descriptive Messages
                                                1. Metadata Usage
                                                  1. Hypermedia Controls
                                                  2. HATEOAS
                                                    1. Discoverability
                                                      1. State Transitions
                                                    2. Code on Demand
                                                      1. Optional Constraint
                                                        1. Client-Side Scripting
                                                      2. Resources vs Endpoints
                                                        1. Definition of Resources
                                                          1. Resource Identification
                                                            1. Mapping Resources to URLs
                                                              1. Resource Hierarchies
                                                              2. Data Formats
                                                                1. JSON
                                                                  1. Syntax and Structure
                                                                    1. Data Types
                                                                      1. Advantages and Limitations
                                                                      2. XML
                                                                        1. Syntax and Structure
                                                                          1. Namespaces
                                                                            1. Advantages and Limitations
                                                                            2. Other Formats
                                                                              1. YAML
                                                                                1. CSV
                                                                                  1. MessagePack
                                                                                2. RESTful API Design Best Practices
                                                                                  1. Naming Conventions
                                                                                    1. Plural vs Singular
                                                                                      1. Consistent Terminology
                                                                                      2. Versioning Strategies
                                                                                        1. URI Versioning
                                                                                          1. Header Versioning
                                                                                            1. Media Type Versioning
                                                                                            2. Consistency and Predictability
                                                                                              1. Error Handling Patterns