As for now, AzNum2Words can be utilized in two ways:
- Library (via importing into go-projects)
- CLI app(build binaries and executing it)
For the people who have no experience with Go language or their already existing system is not compatible to integrate via go library, it would be nice to have another option to use AzNum2Words in somehow.
The proposed solution is ability to run AzNum2Words as microservice and having its well-defined API. So as the result, consumers will able to use functionalities offered by AzNum2Words via calling its exposed API, basically endpoints.
Initially, it was thought that developing web app exposing REST API due to its simplicity and having wider range of uses in the industry. (gPRC support can be added later on demand)
Simple saying, new feature is to develop web app exposing AzNum2Words functionalities as REST API to consumers.
There are few requirements for new feature that need to be considered while developing it.
-
Prepare open-spec contract based on OpenAPI 3.0
1.1. Code-generator
tools such as oapi-codegen can be used to generate models, server-side codes to minimize human errors.
-
It needs to be highly configurable via config file, environment variables.( e.g godotenv) [MUST]
-
Able to run web-app both on locally and containerized environment. [MUST]
-
Write tests to increase maintainability and code quality [MUST]
-
Observability purpose requirements [[DESIRED]]
5.1. Add Health check purpose endpoints
5.2. Expose metrics
5.3. Do properly error handling, logging