The SearchApi
takes a piece of information from a person and will execute a search
against data providers.
- Projects are to be based on .NET Core 3.0
- Message Broker is rabbitMq
- All projects should have a corresponding test project
.
├── app # Application Source Files.
├── docs # Contains application documentations.
├── .gitignore # Git ignore.
├── docker-compose.yml # Docker Compose definition.
└── README.md # This file.
docker-compose up
Once the containers are up, execute the Entity Frameword migration
> dotnet tool install --global dotnet-ef
> cd app/SearchApi.Tracker
> dotnet ef database update
Check the health status of the api here
Download OpenAPi specification here
Access RabbitMq console here, use default rabbitmq username and password.
Access OmniDb here, you can configure the tool to point to postgres using the docker-compose.yml
options.
You can interact with the search api using the following Postman Collection and Postman Environment
When a POST request is send to the people api, a searchRequested
event is sent to the tracker.
The traker stores the investigationState
in the StateMachine Database.
This is the API that will be called by the Scheduler Plugin to search for person sought
The search api tracker application is responsible for tracking investigation on a Person.
you can configure the provider in the provider.configuration.json following this specification
{
"providers": [
{
"name": "provider1"
},
{
"name": "provider2"
}
]
}
This is the test project for the Search API project
This is the Scheduler Plugin
This is the test project for the Scheduler Plugin
This class lib project encapsulate reusable components accross search api applications.