API Documentation (Swagger) via API Gateway
MoSCoW Rating for Elara Release:
Must
Description
EA currently does not ship with any consolidated API documentation. When API documentation is required, it is provided manually by downloading the Swagger file for each API and providing them to developers. The purpose of this requirement is to aggregate all swaggers into the API gateway and make them easily accessible to developers.
Business Case
- Making Swagger files accessible via the API gateway will save time by eliminating the current manual process of having to download them individually before sharing.
- Providing API documentation with EA builds will ensure that organisations better understand how to maximise the value of EA’s APIs.
Personas effected
- Software Developers
User Story
As a Developer I would like to have API documentation so that It is easier to access information about how best to maximize the value of EA APIs
Functionality
Use Case Title: | Aggregate Swagger files |
---|---|
Description (GOAL) | Aggregate all API Swagger files for EA and make them accessible via the API gateway |
Trigger | This feature is triggered when an EA build is deployed |
Primary Actors (Personas) | Developer |
Secondary Actors | EA System |
Stakeholders | Technical Architect, Developer |
Preconditions | Swagger file exists for each API Aggregating Swagger file (Swagger of Swaggers) exists User has access to API gateway |
Flow (Main success Scenario) |
|
Alternative flows | None |
Post-conditions | Success End condition: Read only file aggregating all Swagger files (Swagger of Swaggers) is accessible via the API gateway Swagger files for all APIs are accessible via the API gateway
User is unable to successfully authenticate |
Frequency | Not applicable |
Priority |
Non Functional Requirements
Ref | Area | MoSCoW | Requirement | Comments |
---|---|---|---|---|
1 | Error-handling | Ease with which the system can degrade gracefully if errors occur - eg does the entire system go down and lose data if the internet goes down | ||
2 | Legal and Regulatory |
| specific legal and regulatory requirements associated with the feature | |
3 | Licensing | new/amended licensing requirements associated with the feature or with introduced 3rd party components) | ||
4 | Localizability |
| need to include localised features eg currency; date formats | |
5 | Performance | ability to meet specific performance standards/requirements | ||
6 | Concurrency |
| Specific concurrency requirements | |
7 | Resilience | ability to handle failure of an individual component within the system | ||
8 | Scalability |
| requirements to support increasing numbers of users/concurrency without incurring significant cost | |
9 | Security | M | adherence to defined/specified customer/industry security standards | Read-only access to Swagger of Swaggers. Read-only means they can't change the swagger html or add notes to it etc. Nothing to stop them running commands if they are authenticated. |
10 | Storage |
| Specific storage requirements/considerations | |
11 | Supportability |
| ease with which Support could/need to access logs etc to diagnose a problem | |
12 | Test requirements | ease with which the functionality could/should be supported by automated testing | ||
13 | Training |
| specific training/installation/configuration documentation that is associated with this feature that need to be created/updated |
|
14 | User Experience | specific user experience requirements that would ensure the functionality is acceptable to customers eg can complete action within x clicks |
Sign Off
- Simon Jolly (Unlicensed) (Technical Architect) to review and sign-off
- Vikash Mahabir (Unlicensed) (QA Manager) to review and sign-off
- Liam Hayman Tansley (Unlicensed) (Team Lead) to review and sign-off