FnB Menuplans API
Architecture
Service Architecture
The Menu Plans Service is a fully serverless service built in AWS, consisting of several AWS Lambda functions that operate within a common flow. It integrates the following services:
- Unit Conversion Service: Converts units related to menu items.
- Terminology Translation Service: Translates terminologies associated with menus.
A detailed diagram of the service architecture is shown below:
Key Components
- AWS SQS Queues: Used for asynchronous communication.
- NoSQL DynamoDB Database: Data is persisted here.
- API Gateway: Used to expose the data.
F&B Menu Plans application functions:
- Fetches data from canteen and restaurant operators at various Roche sites.
- Converts this data to a common unified format.
- Stores the data in a database.
- Exposes the data to internal applications, enabling them to display menu plans to users.
Rest API
The F&B Menu Plans application exposes data using a REST API that provides the following functionality:
- Utilizes HATEOAS (Hypermedia as the Engine of Application State) for navigation and interaction within the API.
- Supports Cross-Origin Resource Sharing (CORS), but requires Origin onboarding to enable this feature.
- Provides pagination and filtering by various parameters to efficiently retrieve data.
API Endpoints
The F&B Menu Plans API provides three REST API endpoints:
GET: menuplans/v1/menulineplans -- Find MenuLinePlans by query params\
PUT: menuplans/v1/menulineplans -- Find MenuLinePlans by body params\
GET: menuplans/v1/menulineplans/{id} -- Get MenuLinePlan by id
These endpoints are detailed in the OpenAPI documentation.
Additional Resources
For more detailed information, please refer to the README.md file.