1. API Testing Tools
1.1. Postman
1.2. SOAP UI
1.3. JMeter
1.4. Rest-Assured
1.5. Katalon
2. Types by Protocols
2.1. REST (Representational State Transfer)
2.1.1. RESTful is a standard used in designing API
2.1.2. Supports JSON, XML, HTML, and plain text
2.2. SOAP (Simple Object Access Protocol)
2.2.1. Only supports XML
2.3. RPC (Remote Procedure Call)
2.4. GraphQL
3. Request
3.1. URL
3.2. Parameter(s)
3.3. Method
3.3.1. GET (SELECT)
3.3.2. POST (CREATE)
3.3.3. PUT (UPDATE)
3.3.4. PATCH
3.3.4.1. Use this instead of PUT if you want to modify a single data entry in the data list, rather than the whole data list (index starts at 0)
3.3.5. DELETE (DELETE)
3.3.5.1. Hard delete
3.3.5.2. Soft delete
4. Response
4.1. Status code
4.1.1. 1xx (Informational Response)
4.1.2. 2xx (Successful)
4.1.2.1. 200 - OK
4.1.2.2. 201 - Created
4.1.2.3. 204 - No Content
4.1.3. 3xx (Redirection)
4.1.3.1. 304 - Not Modified
4.1.4. 4xx (Client Error)
4.1.4.1. 400 - Bad Request
4.1.4.2. 401 - Unauthorized
4.1.4.3. 403 - Forbidden
4.1.4.4. 404 - Not Found
4.1.4.5. 405 - Method Not Allowed
4.1.4.6. 422 - Unprocessable Entity
4.1.4.7. 429 - Too Many Requests
4.1.5. 5xx (Server Error)
4.1.5.1. 500 - Internal Server Error
4.2. Content response
4.2.1. Format file type
4.2.1.1. JSON
4.2.1.2. XML
4.2.1.3. CSV (Comma-Separated Values)
4.2.1.4. formurlencoded
4.2.2. Response order
4.2.3. Response time
5. Authentication vs. Authorization
5.1. Authentication
5.1.1. HTTP Basic Authen
5.1.1.1. Username + Password
5.1.2. API Key
5.1.2.1. Key + Value
5.1.3. OAuth
5.1.4. JWT (JSON Web Token)
5.1.4.1. Is a three Based64-URL strings separated by dots: Header.Payload.Signature
5.1.4.1.1. Header
5.1.4.1.2. Payload
5.1.4.1.3. Signature
5.1.4.2. Example
5.1.4.2.1. eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
5.1.5. No Authen
5.2. Authorization
6. API Document
6.1. Tool
6.1.1. Use Swagger to create and manage docs --> can import YAML file
6.2. API Doc Structure
6.2.1. Request Params
6.2.1.1. How many params?
6.2.1.2. Data type
6.2.1.3. Required or Optional?
6.2.2. Example
6.2.2.1. Example of HTTP Requests and Responses with sample data