api-mixer/README.md

56 lines
2.0 KiB
Markdown
Raw Normal View History

2018-10-17 15:58:13 +00:00
# | API mixer |
2018-10-17 14:02:29 +00:00
2018-10-17 15:58:13 +00:00
Simple REST API mixer as a service. A minimal service will be deployed on your local port `8000`, all incoming data has to be sent by _POST_ fields (_e.g. [form-data](https://tools.ietf.org/html/rfc2388), [x-www-form-urlencoded](https://www.w3.org/TR/html5/sec-forms.html#urlencoded-form-data)_). The output is a _application/json_ set.
2018-10-22 15:52:29 +00:00
### Project Set up
2018-10-17 15:58:13 +00:00
2018-10-22 15:40:56 +00:00
##### Prerequisites
2018-10-17 15:58:13 +00:00
2018-11-19 13:22:57 +00:00
You need `node` and `npm` installed. The project is written using `typescript` that allows type checking and other verifications before creating the real javascript code. Also it adds polyfills (c.f. babel) to ECMAScript that allows the use of `class` and other new ES features.
2018-10-22 15:40:56 +00:00
##### 1. Install dependencies
Go into the project's folder and run :
```bash
$ npm i
```
##### 2. Transpile sources
2018-10-17 15:58:13 +00:00
2018-11-19 13:22:57 +00:00
Run the following command inside the project's folder :
2018-10-17 15:58:13 +00:00
```bash
2018-10-22 15:40:56 +00:00
$ npm run build
2018-10-17 15:58:13 +00:00
```
All source files of the `src/` folder will be transpiled into the `dist/` folder.
2018-10-22 15:40:56 +00:00
> It is also possible to watch the typescript while developping and modifying files with the command `npm run watch`.
##### 3. Launch server
2018-10-17 15:58:13 +00:00
> You need to have `node` installed.
Launch the server with the following command (inside the project's folder) :
```bash
$ node dist/main.js
2018-10-17 15:58:13 +00:00
```
2018-10-22 15:52:29 +00:00
### Project fast start
2018-10-22 15:44:37 +00:00
2018-10-22 15:52:29 +00:00
This command will build and run the whole project :
```bash
$ npm run build;
$ npm start;
```
### Test the API
2018-10-17 15:58:13 +00:00
2018-11-19 13:22:57 +00:00
You can now use [Postman](https://www.getpostman.com/) or whatever API client or web browser at `127.0.0.1:8000`. The only allowed request method is **GET** and accepts the research field in a query parameter named 'q'.
2018-11-19 13:29:11 +00:00
The console running the server will provide reactive and real-time details.
2018-11-19 13:22:57 +00:00
2018-11-19 13:29:11 +00:00
Example URL : http://127.0.0.1:8080/?q=Nutella that searches for the keyword "Nutella".
2018-11-19 13:22:57 +00:00
> When called in a browser you will get a simple web page that is the representation of the results (with images).
>
> When called with the header `Accept: application/json`, the result will represent the data as a JSON object.