This service interacts with search.api.gov.uk to query and display companies from elastic search in an alphabetical order.
- Quick start
- Prerequisites
- Running the server
- Static assets
- Compiling the application
- Linting
- Testing
If you are familiar with NodeJS development and already have it installed, simply run the init make task
make init
And then start the application
npm start
Then go to http://localhost:3000.
You are going to need a few things to begin. Firstly, NodeJS. There are a few ways to install it.
Node version manager allows you to install multiple versions side by side on the host machine.
Once you have that installed, you will need to install the dependencies (locally) and GulpJS (globally). This task runner is used to compile the Sass used in the GovUK Frontend.
npm i
npm install gulp-cli -g
There are two ways to run the server in development. You run it in normal mode;
npm start
Or, automatically reload the server once you make changes to source code;
npm start:watch
Sass is used to compile the css from GovUK Frontend. The static gulp task will build the necessary files and output them to the dist folder.
gulp static
During development, static assets are served from this folder using the url prefix /static.
TypeScript compiles down the JavaScript code that eventually gets run via NodeJS. The build npm task will write the JavaScript to the dist folder.
npm run build
It is this code that gets run in production.
ESLint is used to perform static analysis on code using a StandardJS ruleset as its base.
npm run lint
You can also autofix minor linting errors by running npm run lint:fix
Tests can be found in the directory test. The framework used is Mocha along with Chai to dispatch handlers that can have assertions made against the responses and [Sinon] (https://sinonjs.org/) to stub the rest calls. Execute the following to run the tests;
npm t
| Path | Method | Description |
|---|---|---|
/search-web/health |
GET | Returns HTTP OK (200) to indicate a healthy application instance. |
- The healthcheck endpoint uses the
express-actuatorpackage. This means the app also provides/search-web/infoand/search-web/metricsendpoints. These should probably not be exposed.