Golang REST API and Microservices

  1. REST API Design and Implementation
    1. RESTful Architecture Principles
      1. Representational State Transfer
        1. REST Constraints
          1. Resource-Oriented Design
            1. Uniform Interface
              1. Stateless Communication
                1. Cacheable Responses
                2. Resource Design
                  1. Resource Identification
                    1. Resource Representation
                      1. URI Design
                        1. Resource Relationships
                          1. Collection Resources
                            1. Singleton Resources
                            2. HTTP Methods in REST
                              1. GET Operations
                                1. POST Operations
                                  1. PUT Operations
                                    1. PATCH Operations
                                      1. DELETE Operations
                                        1. HEAD Operations
                                          1. OPTIONS Operations
                                          2. Status Code Usage
                                            1. Success Codes
                                              1. Client Error Codes
                                                1. Server Error Codes
                                                  1. Redirection Codes
                                                    1. Status Code Selection
                                                    2. API Versioning
                                                      1. URI Versioning
                                                        1. Header Versioning
                                                          1. Content Negotiation
                                                            1. Backward Compatibility
                                                            2. Content Negotiation
                                                              1. Accept Headers
                                                                1. Content-Type Headers
                                                                  1. Media Types
                                                                    1. Format Selection
                                                                    2. HATEOAS
                                                                      1. Hypermedia Controls
                                                                        1. Discoverability
                                                                          1. State Transitions