The given API allows users to send bulk data to your servers using CSV files. This opens the door to various integrations where the information you need to handle in your app is given by 3rd party services.
The application has been containerised using Docker. Thus, you will need to have installed in your machine before running this repository code upon tests.
Then you have installed docker in your local machine, you might want to also install the Make command line to use the handy commands contained within this repository.
After you have these two (2) installed in your local machine, you can go ahead and clone
this repository like so git@github.com:gocanto/csv-files-reader.git
within your
desire directory in your local machine.
Once you have cloned the repository, position yourself in the clone directory from within
your command line a type the following cp .env.example .env
. This will make sure your
system has the proper env vars needed to run the app locally.
Notes:
- Make sure you have git installed before cloning this repository.
- We have shipped a postman collection for you to have at hand when testing the app.
- You will need some sort of MySQL client if you would like to inspect the database.
We only have two (2) endpoints at the moment. Once to upload any required CSV file (more options in the future) and one to query the data uploaded to the server.
[POST] http://localhost:8080/upload
[GET] http://localhost:8080/query
Please note that the above URLs and ports depend 100% on your local/server configuration.
If you were curious enough and decided to install the Makefile tools, you can run the given command from within this repository root directory to see the options we have for you.
make help
----------------------------------------------
Api CLI Help
----------------------------------------------
build .................................. Start the app container.
flush .................................. Remove all instances of the application.
status ................................. Display the status of all containers.
stop ................................... Destroy the application container.
----------------------------------------------
Otherwise, you can always visit this file to spin the environment up if this happens to be your style.
You can either use the available PostMan collections within this repository. Otherwise, you might want to try using your terminal like so:
Upload data
curl --location 'http://localhost:8080/upload' \
--header 'Content-Type: multipart/form-data' \
--form 'file=@"/Users/gus/Sites/ohlc-price-data/__fixtures__/payload.csv"'
Note that the given testing file needs to be mapped to your local computer in order for the test to work.
Query data
curl --location --request GET 'http://127.0.0.1:8080/query?limit=1&offset=3' \
--header 'Content-Type: application/json' \
--data '{
"symbol": "BTCUSDT",
"unix": "",
"foo": 1
}'
Please do note that the above filter is invalid on purpose for you to test the filtering ability.
Please see the license file for more information.
- ⬆️ Follow me on Twitter.
- ⭐ Star the repository.
- 🤝 Open a pull request to fix/improve the codebase.
- ✍️ Open a pull request to improve the documentation.
- 📧 Let's connect in LinkedIn.
Thank you for reading this far. 😊