graph LR
CLI_Configuration_Manager["CLI & Configuration Manager"]
API_Specification_Processor["API Specification Processor"]
HTTP_Request_Response_Handler["HTTP Request & Response Handler"]
Test_Reporting_Engine["Test & Reporting Engine"]
CLI_Configuration_Manager -- "Initializes & Directs" --> API_Specification_Processor
CLI_Configuration_Manager -- "Provides Configuration" --> API_Specification_Processor
API_Specification_Processor -- "Provides Request Details" --> HTTP_Request_Response_Handler
API_Specification_Processor -- "Supplies Evaluated Data" --> HTTP_Request_Response_Handler
HTTP_Request_Response_Handler -- "Forwards Responses" --> Test_Reporting_Engine
HTTP_Request_Response_Handler -- "Provides Masked Data" --> Test_Reporting_Engine
Test_Reporting_Engine -- "Outputs Results" --> CLI_Configuration_Manager
click CLI_Configuration_Manager href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scanapi/CLI_Configuration_Manager.md" "Details"
click API_Specification_Processor href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scanapi/API_Specification_Processor.md" "Details"
click HTTP_Request_Response_Handler href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scanapi/HTTP_Request_Response_Handler.md" "Details"
click Test_Reporting_Engine href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/scanapi/Test_Reporting_Engine.md" "Details"
The scanapi architecture is designed as a sequential, data-driven pipeline, ideal for automated API testing. It starts with the CLI & Configuration Manager handling user input and system settings. This information then flows to the API Specification Processor, which transforms the human-readable API test definitions into an executable format, incorporating dynamic values through templating and expression evaluation. The processed specification guides the HTTP Request & Response Handler in executing API calls and managing the raw network interactions, including the crucial step of masking sensitive data. Finally, the Test & Reporting Engine consumes the responses, performs assertions to determine test outcomes, and consolidates all results into user-friendly reports and console outputs. This clear, unidirectional flow ensures a predictable and efficient API testing process, making it highly suitable for visual representation as a data flow diagram.
CLI & Configuration Manager [Expand]
Manages user interaction, command-line argument parsing, and loads/manages application-wide settings and configurations.
Related Classes/Methods:
API Specification Processor [Expand]
Parses the raw API specification into an executable tree structure, handling templating and dynamic expression evaluation.
Related Classes/Methods:
scanapi/tree/endpoint_node.pyscanapi/tree/request_node.pyscanapi/template_render.pyscanapi.evaluators.code_evaluator.pyscanapi/evaluators/string_evaluator.pyscanapi/evaluators/spec_evaluator.py
HTTP Request & Response Handler [Expand]
Executes HTTP requests, manages sessions, and processes raw responses, including sensitive data masking.
Related Classes/Methods:
Test & Reporting Engine [Expand]
Evaluates test assertions against responses and generates comprehensive reports and console output.
Related Classes/Methods: