{"id":22433221,"url":"https://github.com/andresweitzel/api_bioethanol_statistics_dynamodb","last_synced_at":"2026-04-13T03:31:52.190Z","repository":{"id":166667920,"uuid":"618952793","full_name":"andresWeitzel/Api_Bioethanol_Statistics_DynamoDB","owner":"andresWeitzel","description":"Api Rest for the statistical management of production and sales of bioethanol based on cane and corn implemented with Api-Gateway, Nodemon, Serverless-Framework, NodeJs, Jest, DynamoDB, Systems Manager Parameter Store, Lambda, among others.","archived":false,"fork":false,"pushed_at":"2025-01-24T22:02:07.000Z","size":41430,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-01T12:46:17.711Z","etag":null,"topics":["api-gateway-v2","aws","aws-lambda","aws-sdk-v3","bioetanol","dynamodb","git","integration-testing","jest","nodejs","nodemon","postman-collection","serverless-framework","serverless-ofline","system-manager-parameter-store","tdd","unit-testing"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andresWeitzel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-03-25T20:32:26.000Z","updated_at":"2025-01-24T22:02:12.000Z","dependencies_parsed_at":"2023-11-03T04:22:59.952Z","dependency_job_id":"d313e669-42e3-4eac-99d7-f322a5077a23","html_url":"https://github.com/andresWeitzel/Api_Bioethanol_Statistics_DynamoDB","commit_stats":null,"previous_names":["andresweitzel/api_bioetanol_estadisticas_dynamodb_aws","andresweitzel/api_bioethanol_statistics_dynamodb"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andresWeitzel%2FApi_Bioethanol_Statistics_DynamoDB","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andresWeitzel%2FApi_Bioethanol_Statistics_DynamoDB/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andresWeitzel%2FApi_Bioethanol_Statistics_DynamoDB/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andresWeitzel%2FApi_Bioethanol_Statistics_DynamoDB/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andresWeitzel","download_url":"https://codeload.github.com/andresWeitzel/Api_Bioethanol_Statistics_DynamoDB/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245806381,"owners_count":20675296,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-gateway-v2","aws","aws-lambda","aws-sdk-v3","bioetanol","dynamodb","git","integration-testing","jest","nodejs","nodemon","postman-collection","serverless-framework","serverless-ofline","system-manager-parameter-store","tdd","unit-testing"],"created_at":"2024-12-05T22:14:18.985Z","updated_at":"2026-04-13T03:31:52.173Z","avatar_url":"https://github.com/andresWeitzel.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Index app](./doc/datos/bioetanolTablas.png)\n\n\u003cdiv align=\"right\"\u003e\n  \u003cimg width=\"25\" height=\"25\" src=\"./doc/assets/icons/devops/png/aws.png\" /\u003e\n  \u003cimg width=\"25\" height=\"25\" src=\"./doc/assets/icons/aws/png/lambda.png\" /\u003e\n    \u003cimg width=\"27\" height=\"27\" src=\"./doc/assets/icons/devops/png/postman.png\" /\u003e\n  \u003cimg width=\"29\" height=\"27\" src=\"./doc/assets/icons/devops/png/git.png\" /\u003e\n  \u003cimg width=\"28\" height=\"27\" src=\"./doc/assets/icons/aws/png/api-gateway.png\" /\u003e\n  \u003cimg width=\"27\" height=\"25\" src=\"./doc/assets/icons/aws/png/parameter-store.png\" /\u003e\n  \u003cimg width=\"27\" height=\"27\" src=\"./doc/assets/icons/backend/javascript-typescript/png/nodejs.png\" /\u003e\n  \u003cimg width=\"25\" height=\"27\" src=\"./doc/assets/icons/aws/png/dynamo.png\" /\u003e\n     \u003cimg width=\"24\" height=\"24\" src=\"./doc/assets/icons/backend/javascript-typescript/png/typescript.png\" /\u003e\n  \u003cimg width=\"32\" height=\"32\" src=\"./doc/assets/icons/devops/png/vsc.png\" /\u003e\n\n\n\u003c/div\u003e \n\n\u003cbr\u003e\n\n\u003cbr\u003e\n\n\u003cdiv align=\"right\"\u003e \n  \u003ca href=\"https://github.com/andresWeitzel/Api_Bioetanol_Estadisticas_DynamoDB_AWS/blob/master/translation/README.es.md\"\u003e\n    \u003cimg src=\"./doc/assets/translation/arg-flag.jpg\" width=\"65\" height=\"40\" /\u003e\n  \u003c/a\u003e \n  \u003ca href=\"https://github.com/andresWeitzel/Api_Bioetanol_Estadisticas_DynamoDB_AWS/blob/master/README.md\"\u003e\n    \u003cimg src=\"./doc/assets/translation/eeuu-flag.jpg\" width=\"65\" height=\"40\" /\u003e\n  \u003c/a\u003e \n\u003c/div\u003e\n\n\n\u003cbr\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n# Bioethanol Statistics DynamoDB AWS ![(status-completed)](./doc/assets/icons/badges/status-completed.svg)\n\n\u003c/div\u003e\n\nApi Rest for the statistical management of production and sales of bioethanol based on cane and corn implemented with Api-Gateway, Nodemon, Serverless-Framework, NodeJs, DynamoDB, Systems Manager Parameter Store, Lambda among others. AWS services are tested locally. The project code and its documentation (less technical doc) have been developed in English.\n\n*   [Postman Collection](./postman/collection/Api_Bioetanol_Dynamo_AWS.postman_collection.json) \n*   [Playlist functionality test](https://www.youtube.com/playlist?list=PLCl11UFjHurDt4nwIAFwH0FTX5hvPl5re) \u003ca href=\"https://www.youtube.com/playlist?list=PLCl11UFjHurDt4nwIAFwH0FTX5hvPl5re\" target=\"_blank\"\u003e \u003cimg src=\"./doc/assets/social-networks/yt.png\" width=\"25\" height=\"15\" /\u003e\n\n\u003cbr\u003e\n\n## Index 📜\n\n\u003cdetails\u003e\n  \u003csummary\u003e View details \u003c/summary\u003e\n\n\n\u003cdiv align=\"right\"\u003e\n\n`Latest update: 19/02/26` \n\n\u003c/div\u003e\n\n### Section 1) Description, configuration and technologies\n\n*   [1.0) Project Description.](#10-description-)\n*   [1.1) Project Execution.](#11-project-execution-)\n*   [1.2) Project configuration from scratch](#12-project-configuration-from-scratch-)\n*   [1.3) Technologies.](#13-technologies-)\n\n### Section 2) Endpoints and Examples\n\n*   [2.0) EndPoints and resources.](#20-endpoints-and-resources-)\n*   [2.1) Examples.](#21-examples-)\n\n### Section 3) Functionality Testing and References\n\n*   [3.0) Functionality test.](#30-functionality-test-)\n*   [3.1) References.](#31-references-)\n\n\u003cbr\u003e\n\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n## Section 1) Description, configuration and technologies\n\n### 1.0) Description [🔝](#index-)\n\n\u003cdetails\u003e\n   \u003csummary\u003eView details\u003c/summary\u003e\n\n  \u003cbr\u003e\n\nApi Rest for the statistical management of the production and marketing of bioethanol based on cane and corn. For its main architecture, all dynamo operations are covered through modularized helpers, endpoints through controllers, enumerations are used, etc. All necessary CRUD operations are also applied, as well as validations of credentials, tokens, headers, body, etc. for each endpoint of each table. The dynamodb tables involved are bioethanolPrices, bioethanolTotal, and bioethanolTypes.\n`Important`: There are security alerts from dependabot that were closed as they point to the \"serverless-dynamodb-local\" plugin. Do not apply security patches to that plugin, as version `^1.0.2` has problems creating tables and running the dynamo service. It is recommended to keep the latest stable version `^0.2.40` with the security alerts generated.\n\n\u003cbr\u003e\n\n\u003c/details\u003e\n\n### 1.1) Project Execution [🔝](#index-)\n\n\u003cdetails\u003e\n   \u003csummary\u003eView details\u003c/summary\u003e\n\n*   We create a work environment through some IDE, we may or may not create a root folder for the project, we position ourselves on it\n\n```git\ncd 'projectRootName'\n```\n\n*   Once a work environment has been created, we clone the project\n\n```git\ngit clone https://github.com/andresWeitzel/Api_Bioetanol_Estadisticas_DynamoDB_AWS\n```\n\n*   We position ourselves on the project\n\n```git\ncd 'projectName'\n```\n\n*   We install the latest LTS version of [Nodejs(v18)](https://nodejs.org/en/download)\n*   We install the Serverless Framework globally if we haven't already. I recommend version 3 so we don't need credentials. You can use the latest version 4 without any problems (it's paid).\n\n```git\nnpm install -g serverless@3\n```\n\n*   We verify the version of Serverless installed\n\n```git\nsls -v\n```\n\n*   We install all the necessary packages\n\n```git\nnpm i\n```\n\n*   `Important`: There are security alerts from dependabot that were closed as they point to the \"serverless-dynamodb-local\" plugin. Do not apply security patches to that plugin, as version `^1.0.2` has problems creating tables and running the dynamo service. It is recommended to keep the latest stable version `^0.2.40` with the security alerts generated.\n*   For simplification purposes, the file for ssm variables (serverless\\_ssm.yml) is included. It is recommended not to include or change credentials, token, etc.\n*   The following script configured in the project's package.json is responsible for\n    *   Lift serverless-offline (\"serverless-offline\")\n    *   run serverless-offline (\"start\")\n    *   run nodemon and serverless (\"start:dev\")\n    *   format all js and ts files with prettier (\"format-prettier\")\n    *   format all .md files with remark (\"format-remark\")\n    *   etc.\n    ```git\n         \"serverless-offline\": \"sls offline start\",\n         \"start\": \"npm run serverless-offline\",\n         \"start:dev\": \"nodemon -e js,ts,yml,json --exec \\\"sls offline start\\\"\",\n         \"format-prettier\": \"prettier --write \\\"{src,test}/**/*.{js,ts}\\\"\",\n         \"check\": \"remark . --quiet --frail\",\n         \"format-remark\": \"remark . --quiet --frail --output\",\n         \"format-md\": \"remark . --output\"\n    ```\n    *   We run the app from terminal.\n    ```git\n    npm run start\n    ```\n    *   We run the app with nodemon to auto detect changes from the server.\n\n```git\nnpm run start:dev\n```\n\n*   `Important`: It is possible that there are other previous steps that have not been included due to synchronization between docs in relation to development. Please open a conversation thread within the 'Issues' section of the project.\n\n\u003cbr\u003e\n\n\u003c/details\u003e\n\n### 1.2) Project configuration from scratch [🔝](#index-)\n\n\u003cdetails\u003e\n\u003csummary\u003eView details\u003c/summary\u003e\n\n\u003cbr\u003e\n\n*   We create a work environment through some IDE, we may or may not create a root folder for the project, we position ourselves on it\n\n```git\ncd 'projectRootName'\n```\n\n*   Once a work environment has been created, we clone the project\n\n```git\ngit clone https://github.com/andresWeitzel/Api_Bioetanol_Estadisticas_DynamoDB_AWS\n```\n\n*   We position ourselves on the project\n\n```git\ncd 'projectName'\n```\n\n*   We install the latest LTS version of [Nodejs(v18)](https://nodejs.org/en/download)\n*   We install the Serverless Framework globally if we have not already done so\n\n```git\nnpm install -g serverless\n```\n\n*   We verify the version of Serverless installed\n\n```git\nsls -v\n```\n\n*   We initialize a serverles template\n\n```git\nserverless create --template aws-nodejs\n```\n\n*   We initialize an npm project\n\n```git\nnpm init -y\n```\n\n*   We install serverless offline\n\n```git\nnpm i serverless-offline --save-dev\n```\n\n*   We add the plugin inside the serverless.yml\n\n```yml\nplugins:\n   - serverless-offline\n```\n\n*   We install serverless ssm\n\n```git\nnpm i serverless-offline-ssm --save-dev\n```\n\n*   We add the plugin inside the serverless.yml\n\n```yml\nplugins:\n   - serverless-offlline-ssm\n```\n\n*   We install the plugin to use dynamodb locally (Not the dynamoDB service, this is configured in the files within .dynamodb).\n*   `Important`: There are security alerts from dependabot that were closed as they point to the \"serverless-dynamodb-local\" plugin. Do not apply security patches to that plugin, as version `^1.0.2` has problems creating tables and running the dynamo service. It is recommended to keep the latest stable version `^0.2.40` with the security alerts generated.\n\n```git\nnpm install serverless-dynamodb-local --save-dev\n```\n\n*   We add the plugin inside the serverless.yml\n\n```yml\nplugins:\n   - serverless-dynamodb-local\n```\n\n*   We install the dynamodb client sdk for the necessary db operations\n\n```git\nnpm install @aws-sdk/client-dynamodb\n```\n\n*   We install the dynamodb sdk lib for the necessary db operations\n\n```git\nnpm i @aws-sdk/lib-dynamodb\n```\n\n*   We will modify the initial template for the standardized configs.\n    *   We replaced the initial serverless.yml template with the following one as the base model (change name, etc)...\n\n```yml\n\nservice: name\n\nframeworkVersion: '3'\n\nprovider:\n   name: aws\n   runtime: nodejs12.x\n   stage: dev\n   region: us-west-1\n   memorySize: 512\n   timeout: 10\n\nplugins:\n     - serverless-dynamodb-local\n     - serverless-offline-ssm\n     - serverless-offline\n\nfunctions:\n   Hello:\n     handler: handler.hello\n\ncustom:\n   serverless-offline:\n     httpPort: 4000\n     lambdaPort: 4002\n   serverless-offline-ssm:\n     stages:\n       -dev\n   dynamodb:\n     stages:\n       -dev\n```\n\n*   We install prettier for indentations\n\n```git\nnpm i prettier --save\n```\n\n*   We install node-input-validator to validate attributes in requests, class objects, etc.\n\n```git\nnpm i node-input-validator --save\n```\n\n*   We must download the .jar along with its config to run the dynamodb service. [Download here](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html#DynamoDBLocal.DownloadingAndRunning.title)\n*   Once the .jar has been downloaded in .tar format, we decompress and copy all its contents into the `.dynamodb` folder.\n*   We install the dependency for the execution of scripts in parallel\n\n```git\nnpm i --save-dev concurrently\n```\n\n*   The following script configured in the project's package.json is responsible for\n    Raise serverless-offline (serverless-offline)\n\n```git\n  \"scripts\": {\n    \"serverless-offline\": \"sls offline start\",\n    \"start\": \"npm run serverless-offline\"\n  },\n```\n\n*   We run the app from terminal.\n\n```git\nnpm start\n```\n\n*   We should expect a console output with the following services raised when the previous command is executed\n\n```git\n\u003e crud-amazon-dynamodb-aws@1.0.0 start\n\u003e npm run serverless-offline\n\n\u003e crud-amazon-dynamodb-aws@1.0.0 serverless-offline\n\u003e sls offline start\n\nserverless-offline-ssm checking serverless version 3.31.0.\nDynamodb Local Started, Visit: http://localhost:8000/shell\nDynamoDB - created table xxxx\n\netc.....\n```\n\n*   We already have a functional app with an initial structure defined by Serverless-Framework. The application is deployed at http://localhost:4002 and we can test the endpoint declared in the serverless from postman\n*   `Clarification`: The rest of the modifications applied to the initial template are not described due to document simplification issues. For more information consult See the [Serverless-framework](https://www.serverless.com/) tutorial for using services, plugins, etc.\n\n\u003cbr\u003e\n\n\u003c/details\u003e\n\n### 1.3) Technologies [🔝](#index-)\n\n\u003cdetails\u003e\n   \u003csummary\u003eView details\u003c/summary\u003e\n\n  \u003cbr\u003e\n\n| **Technologies** | **Version** | **Purpose** |\n| ------------- | ------------- | ------------- |\n| [SDK](https://www.serverless.com/framework/docs/guides/sdk/) | 4.3.2 | Automatic Module Injection for Lambdas |\n| [Serverless Framework Core v3](https://www.serverless.com//blog/serverless-framework-v3-is-live) | 3.23.0 | Core Services AWS |\n| [Serverless Plugin](https://www.serverless.com/plugins/) | 6.2.2 | Libraries for Modular Definition |\n| [Systems Manager Parameter Store (SSM)](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) | 3.0 | Management of Environment Variables |\n| [Amazon Api Gateway](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html) | 2.0 | API Manager, Authentication, Control and Processing |\n| [Amazon DynamoDB](https://aws.amazon.com/es/dynamodb/) | 2017.11.29 | Fast and flexible NoSQL database service for single-digit millisecond performance at any scale |\n| [NodeJS](https://nodejs.org/en/) | 14.18.1 | JS Library |\n| [VSC](https://code.visualstudio.com/docs) | 1.72.2 | IDE |\n| [Postman](https://www.postman.com/downloads/) | 10.11 | Http Client |\n| [CMD](https://learn.microsoft.com/en-us/windows-server/administration/windows-commands/cmd) | 10 | Command Prompt for command line |\n| [Git](https://git-scm.com/downloads) | 2.29.1 | Version Control |\n| Others | - | Others |\n\n\u003c/br\u003e\n\n| **Plugin** | **Description** |\n| ------------- | ------------- |\n| [Serverless Plugin](https://www.serverless.com/plugins/) | Libraries for Modular Definition |\n| [serverless-dynamodb-local](https://www.serverless.com/plugins/serverless-dynamodb-local) | Allows to run dynamodb locally for serverless |\n| [serverless-offline](https://www.npmjs.com/package/serverless-offline) | This serverless plugin emulates AWS λ and API Gateway on-premises |\n| [serverless-offline-ssm](https://www.npmjs.com/package/serverless-offline-ssm) | finds environment variables that match the SSM parameters at build time and replaces them from a file |\n\n\u003c/br\u003e\n\n### VSC Extensions Implemented.\n\n| **Extension** |\n| ------------- |\n| Prettier - Code formatter |\n| YAML - Autoformatter .yml (alt+shift+f) |\n| GitLens - Tracking changes |\n| Serverless Framework - Autocompleted with snippets |\n| Tabnine - AI Autocomplete |\n| Others |\n\n\u003cbr\u003e\n\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n## Section 2) Endpoints and Examples.\n\n### 2.0) Endpoints and resources [🔝](#index-)\n\n\u003cdetails\u003e\n   \u003csummary\u003eView details\u003c/summary\u003e\n\u003cbr\u003e\n\n### 2.0.1) Variables in Postman\n\n| **Variable** | **Value** |\n| ------------- | ------------- |\n| base\\_url | http://localhost:4000/dev/v1 |\n| x-api-key | f98d8cd98h73s204e3456998ecl9427j |\n| bearer-token | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV\\_adQssw5c |\n\n*   `Important`: Key values included are for local testing only.\n\n\u003cbr\u003e\n\n### 2.0.2) Bioetanol_Precios endpoints\n\n#### GET type operations:\n\n*   `base_url`/bioetanol-precios/list?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-precios/uuid/`uuidValue`\n*   `base_url`/bioetanol-precios/bioetanol-cana-azucar/`bioetanolCanaAzucarValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-precios/created-at/`createdAtvalue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-precios/field-type?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\\\u0026fieldType=`fieldTypeValue`\\\u0026fieldValue=`fieldValueValue`\n*   `base_url`/bioetanol-precios/periodo/`periodoValue`\n*   `base_url`/bioetanol-precios/bioetanol-maiz/`bioetanolMaizValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `All endpoints are optional paginated except /test, /db-connection and /id/{{user-id}}`\n\n#### POST type operations:\n\n*   `base_url`/bioetanol-precios/\n\n#### PUT type operations:\n\n*   `base_url`/bioetanol-precios/`uuid`\n\n#### DELETE type operations:\n\n*   `base_url`/bioetanol-precios/`uuid`\n\n\u003cbr\u003e\n\n### 2.0.3) Bioetanol_Tipos endpoints\n\n#### GET type operations:\n\n*   `base_url`/bioetanol-tipos/list?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-tipos/uuid/`uuidValue`\n*   `base_url`/bioetanol-tipos/tipo/`tipoValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-tipos/periodo/`periodoValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-tipos/produccion/`produccionValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-tipos/ventas-totales/`ventasTotalesValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-tipos/ubicacion/`ubicacionValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-tipos/estado-operativo/`estadoOperativoValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `All endpoints are optional paginated except /test, /db-connection and /id/{{user-id}}`\n\n#### POST type operations:\n\n*   `base_url`/bioetanol-tipos/\n\n#### PUT type operations:\n\n*   `base_url`/bioetanol-tipos/`uuid`\n\n#### DELETE type operations:\n\n*   `base_url`/bioetanol-tipos/`uuid`\n\n\u003cbr\u003e\n\n### 2.0.4) Bioetanol_Total endpoints\n\n#### GET type operations:\n\n*   `base_url`/bioetanol-total/list?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-total/uuid/`uuidValue`\n*   `base_url`/bioetanol-total/periodo/`periodoValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-total/produccion/`produccionValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-total/ventas-totales/`ventasTotalesValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-total/capacidad-instalada/`capacidadInstaladaValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-total/eficiencia-produccion/`eficienciaProduccionValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-total/ubicacion/`ubicacionValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `base_url`/bioetanol-total/estado-operativo/`estadoOperativoValue`?limit=`limitValue`\\\u0026orderAt=`orderAtValue`\n*   `All endpoints are optional paginated except /test, /db-connection and /id/{{user-id}}`\n\n#### POST type operations:\n\n*   `base_url`/bioetanol-total/\n\n#### PUT type operations:\n\n*   `base_url`/bioetanol-total/`uuid`\n\n#### DELETE type operations:\n\n*   `base_url`/bioetanol-total/`uuid`\n\n\n\n\u003cbr\u003e\n\n\u003c/details\u003e\n\n### 2.1) Examples [🔝](#index-)\n\n\u003cdetails\u003e\n   \u003csummary\u003eView details\u003c/summary\u003e\n\u003cbr\u003e\n\n### 2.1.0) Variables in Postman\n\n| **Variable** | **Value** |\n| ------------- | ------------- |\n| base\\_url | http://localhost:4000/dev/v1 |\n| x-api-key | f98d8cd98h73s204e3456998ecl9427j |\n| bearer-token | Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c |\n\n*   `Important`: Key values included are for local testing only.\n\n\u003cbr\u003e\n\n### 2.1.1) Bioetanol_Precios endpoints\n\n### Get All Bioetanol-precios items\n\n#### Request (GET)\n\n```postman\ncurl --location 'http://localhost:4000/dev/v1/bioetanol-precios/list?limit=3\u0026orderAt=asc' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": [\n        {\n            \"createdAt\": \"2023-11-18 21:55:01\",\n            \"uuid\": \"3bfff0ca-8cba-4113-bc94-4afb6e7feb7e\",\n            \"periodo\": \"2023-11\",\n            \"bioetMaiz\": \"412,23\",\n            \"bioetCanAzucar\": \"345,33\",\n            \"unidadMedida\": \"USD/m3\",\n            \"fuenteDatos\": \"Secretaría de Energía\",\n            \"region\": \"Norte\",\n            \"variacionAnual\": \"5.2\",\n            \"variacionMensual\": \"1.8\",\n            \"observaciones\": \"Precios estables en el mercado\",\n            \"updatedAt\": \"2023-11-18 21:55:01\"\n        }\n    ]\n}\n```\n\n#### Response (400 Bad Request)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n#### Response (500 Internal Server Error)\n\n```json\n{\n    \"message\": \"An error has occurred, failed to list database objects. Check if items exists.\"\n}\n```\n\n\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\n\n### Get By UUID Bioetanol-precios\n\n#### Request (GET)\n\n```postman\ncurl --location 'http://localhost:4000/dev/v1/bioetanol-precios/uuid/3f86f08e-99a6-442f-b31c-1668cbe76edb' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": {\n        \"createdAt\": \"2023-11-18 21:55:01\",\n        \"uuid\": \"3bfff0ca-8cba-4113-bc94-4afb6e7feb7e\",\n        \"periodo\": \"2023-11\",\n        \"bioetMaiz\": \"412,23\",\n        \"bioetCanAzucar\": \"345,33\",\n        \"unidadMedida\": \"USD/m3\",\n        \"fuenteDatos\": \"Secretaría de Energía\",\n        \"region\": \"Norte\",\n        \"variacionAnual\": \"5.2\",\n        \"variacionMensual\": \"1.8\",\n        \"observaciones\": \"Precios estables en el mercado\",\n        \"updatedAt\": \"2023-11-18 21:55:01\"\n    }\n}\n```\n\n#### Response (400 Bad Request)\n\n```json\n{\n    \"message\": \"The Bioetanol prices object with the requested id 3f86f08e-99a6-442f-b31c-1668cbe76edb is not found in the database.\"\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\n\n### Add Bioetanol-precios item\n\n#### Request (POST)\n\n```postman\ncurl --location 'http://localhost:4000/dev/v1/bioetanol-precios/' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"periodo\": \"2023-11\",\n    \"bioetanol_azucar\": \"345,33\",\n    \"bioetanol_maiz\": \"412,23\",\n    \"unidad_medida\": \"USD/m3\",\n    \"fuente_datos\": \"Secretaría de Energía\",\n    \"region\": \"Norte\",\n    \"variacion_anual\": \"5.2\",\n    \"variacion_mensual\": \"1.8\",\n    \"observaciones\": \"Precios estables en el mercado\"\n}'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": {\n        \"uuid\": \"3bfff0ca-8cba-4113-bc94-4afb6e7feb7e\",\n        \"periodo\": \"2023-11\",\n        \"bioetCanAzucar\": \"345,33\",\n        \"bioetMaiz\": \"412,23\",\n        \"unidadMedida\": \"USD/m3\",\n        \"fuenteDatos\": \"Secretaría de Energía\",\n        \"region\": \"Norte\",\n        \"variacionAnual\": \"5.2\",\n        \"variacionMensual\": \"1.8\",\n        \"observaciones\": \"Precios estables en el mercado\",\n        \"createdAt\": \"2023-11-18 21:55:01\",\n        \"updatedAt\": \"2023-11-18 21:55:01\"\n    }\n}\n```\n\n#### Response (400 Bad Request)\n\n```json\n{\n    \"message\": \"Bad request, check request body attributes. Missing or incorrect\"\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\n\n### Update Bioetanol-precios item\n\n#### Request (PUT)\n\n```postman\ncurl --location --request PUT 'http://localhost:4000/dev/v1/bioetanol-precios/67ecfcf7-c338-43d8-9220-4d7b43b7e914' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"periodo\": \"2023-11\",\n    \"bioetanol_azucar\": \"345,33\",\n    \"bioetanol_maiz\": \"412,23\",\n    \"unidad_medida\": \"USD/m3\",\n    \"fuente_datos\": \"Secretaría de Energía\",\n    \"region\": \"Norte\",\n    \"variacion_anual\": \"5.2\",\n    \"variacion_mensual\": \"1.8\",\n    \"observaciones\": \"Precios estables en el mercado\"\n}'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": {\n        \"createdAt\": \"2023-11-18 22:01:34\",\n        \"periodo\": \"2023-11\",\n        \"uuid\": \"b58fd5cb-ed0b-461c-bfea-50c240e51280\",\n        \"bioetMaiz\": \"412,23\",\n        \"bioetCanAzucar\": \"345,33\",\n        \"unidadMedida\": \"USD/m3\",\n        \"fuenteDatos\": \"Secretaría de Energía\",\n        \"region\": \"Norte\",\n        \"variacionAnual\": \"5.2\",\n        \"variacionMensual\": \"1.8\",\n        \"observaciones\": \"Precios estables en el mercado\",\n        \"updatedAt\": \"2023-11-18 22:03:34\"\n    }\n}\n```\n\n#### Response (400 Bad Request)\n\n```json\n{\n    \"message\": \"Bad request, check request body attributes for bioetanol-precios. Missing or incorrect\"\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n#### Response (500 Internal Server Error)\n\n```json\n{\n    \"message\": \"Internal Server Error. Unable to update object in db as failed to get a item by uuid 67ecfcf7-c338-43d8-9220-4d7b43b7e914 . Check if the item exists in the database and try again.\"\n}\n```\n\n\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\n\n### Delete Bioetanol-precios item\n\n#### Request (DELETE)\n\n```postman\ncurl --location --request DELETE 'http://localhost:4000/dev/v1/bioetanol-precios/2c6d2e51-390b-4cb4-ab69-7820c632e6a4' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": \"Successfully removed item based on uuid b58fd5cb-ed0b-461c-bfea-50c240e51280\"\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n#### Response (500 Internal Server Error)\n\n```json\n{\n    \"message\": \"Unable to delete item based on uuid 2c6d2e51-390b-4cb4-ab69-7820c632e6a4\"\n}\n```\n\n\u003cbr\u003e\n\n### 2.1.2) Bioetanol_Tipos endpoints\n\n### Get All Bioetanol-tipos items\n\n#### Request (GET)\n\n```postman\ncurl --location 'http://localhost:4000/dev/v1/bioetanol-tipos/list?limit=3\u0026orderAt=asc' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": [\n        {\n            \"uuid\": \"3bfff0ca-8cba-4113-bc94-4afb6e7feb7e\",\n            \"tipo\": \"caña_azucar\",\n            \"periodo\": \"2023-11\",\n            \"produccion\": \"150000\",\n            \"ventasTotales\": \"145000\",\n            \"capacidadInstalada\": \"180000\",\n            \"eficienciaProduccion\": \"85\",\n            \"materiaPrima\": \"caña de azúcar\",\n            \"ubicacion\": \"Norte\",\n            \"estadoOperativo\": \"activo\",\n            \"observaciones\": \"Producción estable\",\n            \"createdAt\": \"2023-11-18 21:55:01\",\n            \"updatedAt\": \"2023-11-18 21:55:01\"\n        }\n    ]\n}\n```\n\n#### Response (400 Bad Request)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n#### Response (500 Internal Server Error)\n\n```json\n{\n    \"message\": \"An error has occurred, failed to list database objects. Check if items exists.\"\n}\n```\n\n---\n\n### Get By UUID Bioetanol-tipos\n\n#### Request (GET)\n\n```postman\ncurl --location 'http://localhost:4000/dev/v1/bioetanol-tipos/uuid/3f86f08e-99a6-442f-b31c-1668cbe76edb' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": {\n        \"uuid\": \"3bfff0ca-8cba-4113-bc94-4afb6e7feb7e\",\n        \"tipo\": \"caña_azucar\",\n        \"periodo\": \"2023-11\",\n        \"produccion\": \"150000\",\n        \"ventasTotales\": \"145000\",\n        \"capacidadInstalada\": \"180000\",\n        \"eficienciaProduccion\": \"85\",\n        \"materiaPrima\": \"caña de azúcar\",\n        \"ubicacion\": \"Norte\",\n        \"estadoOperativo\": \"activo\",\n        \"observaciones\": \"Producción estable\",\n        \"createdAt\": \"2023-11-18 21:55:01\",\n        \"updatedAt\": \"2023-11-18 21:55:01\"\n    }\n}\n```\n\n#### Response (400 Bad Request)\n\n```json\n{\n    \"message\": \"The Bioetanol types object with the requested id 3f86f08e-99a6-442f-b31c-1668cbe76edb is not found in the database.\"\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n---\n\n### Add Bioetanol-tipos item\n\n#### Request (POST)\n\n```postman\ncurl --location 'http://localhost:4000/dev/v1/bioetanol-tipos/' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"tipo\": \"caña_azucar\",\n    \"periodo\": \"2023-11\",\n    \"produccion\": \"150000\",\n    \"ventas_totales\": \"145000\",\n    \"capacidad_instalada\": \"180000\",\n    \"eficiencia_produccion\": \"85\",\n    \"materia_prima\": \"caña de azúcar\",\n    \"ubicacion\": \"Norte\",\n    \"estado_operativo\": \"activo\",\n    \"observaciones\": \"Producción estable\"\n}'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": {\n        \"uuid\": \"3bfff0ca-8cba-4113-bc94-4afb6e7feb7e\",\n        \"tipo\": \"caña_azucar\",\n        \"periodo\": \"2023-11\",\n        \"produccion\": \"150000\",\n        \"ventasTotales\": \"145000\",\n        \"capacidadInstalada\": \"180000\",\n        \"eficienciaProduccion\": \"85\",\n        \"materiaPrima\": \"caña de azúcar\",\n        \"ubicacion\": \"Norte\",\n        \"estadoOperativo\": \"activo\",\n        \"observaciones\": \"Producción estable\",\n        \"createdAt\": \"2023-11-18 21:55:01\",\n        \"updatedAt\": \"2023-11-18 21:55:01\"\n    }\n}\n```\n\n#### Response (400 Bad Request)\n\n```json\n{\n    \"message\": \"Bad request, check request body attributes. Missing or incorrect\"\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n---\n\n### Update Bioetanol-tipos item\n\n#### Request (PUT)\n\n```postman\ncurl --location --request PUT 'http://localhost:4000/dev/v1/bioetanol-tipos/67ecfcf7-c338-43d8-9220-4d7b43b7e914' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json' \\\n--data '{\n    \"tipo\": \"caña_azucar\",\n    \"periodo\": \"2023-11\",\n    \"produccion\": \"160000\",\n    \"ventas_totales\": \"155000\",\n    \"capacidad_instalada\": \"180000\",\n    \"eficiencia_produccion\": \"88\",\n    \"materia_prima\": \"caña de azúcar\",\n    \"ubicacion\": \"Norte\",\n    \"estado_operativo\": \"activo\",\n    \"observaciones\": \"Producción mejorada\"\n}'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": {\n        \"uuid\": \"67ecfcf7-c338-43d8-9220-4d7b43b7e914\",\n        \"tipo\": \"caña_azucar\",\n        \"periodo\": \"2023-11\",\n        \"produccion\": \"160000\",\n        \"ventasTotales\": \"155000\",\n        \"capacidadInstalada\": \"180000\",\n        \"eficienciaProduccion\": \"88\",\n        \"materiaPrima\": \"caña de azúcar\",\n        \"ubicacion\": \"Norte\",\n        \"estadoOperativo\": \"activo\",\n        \"observaciones\": \"Producción mejorada\",\n        \"createdAt\": \"2023-11-18 21:55:01\",\n        \"updatedAt\": \"2023-11-18 22:03:34\"\n    }\n}\n```\n\n#### Response (400 Bad Request)\n\n```json\n{\n    \"message\": \"Bad request, check request body attributes for bioetanol-tipos. Missing or incorrect\"\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n#### Response (500 Internal Server Error)\n\n```json\n{\n    \"message\": \"Internal Server Error. Unable to update object in db as failed to get a item by uuid 67ecfcf7-c338-43d8-9220-4d7b43b7e914 . Check if the item exists in the database and try again.\"\n}\n```\n\n---\n\n### Delete Bioetanol-tipos item\n\n#### Request (DELETE)\n\n```postman\ncurl --location --request DELETE 'http://localhost:4000/dev/v1/bioetanol-tipos/2c6d2e51-390b-4cb4-ab69-7820c632e6a4' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": \"Successfully removed item based on uuid 2c6d2e51-390b-4cb4-ab69-7820c632e6a4\"\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n#### Response (500 Internal Server Error)\n\n```json\n{\n    \"message\": \"Unable to delete item based on uuid 2c6d2e51-390b-4cb4-ab69-7820c632e6a4\"\n}\n```\n\n\u003cbr\u003e\n\n### 2.1.3) Bioetanol_Total endpoints\n\n### Get All Bioetanol-total items\n\n#### Request (GET)\n\n```postman\ncurl --location 'http://localhost:4000/dev/v1/bioetanol-total/list?limit=3\u0026orderAt=asc' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": [\n        {\n            \"uuid\": \"3bfff0ca-8cba-4113-bc94-4afb6e7feb7e\",\n            \"estadoOperativo\": \"821\",\n            \"eficienciaProduccion\": \"95.5\",\n            \"capacidadInstalada\": \"1000\",\n            \"ventasTotales\": \"850\",\n            \"produccion\": \"900\",\n            \"createdAt\": \"2023-11-18 21:55:01\",\n            \"updatedAt\": \"2023-11-18 21:55:01\"\n        }\n    ]\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n#### Response (500 Internal Server Error)\n\n```json\n{\n    \"message\": \"An error has occurred, could not list objects from database. Check if items exist.\"\n}\n```\n\n\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\n\n### Get Bioetanol-total item by estado operativo\n\n#### Request (GET)\n\n```postman\ncurl --location 'http://localhost:4000/dev/v1/bioetanol-total/estado-operativo/821?limit=5\u0026orderAt=asc' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": [\n        {\n            \"uuid\": \"3bfff0ca-8cba-4113-bc94-4afb6e7feb7e\",\n            \"estadoOperativo\": \"821\",\n            \"eficienciaProduccion\": \"95.5\",\n            \"capacidadInstalada\": \"1000\",\n            \"ventasTotales\": \"850\",\n            \"produccion\": \"900\",\n            \"createdAt\": \"2023-11-18 21:55:01\",\n            \"updatedAt\": \"2023-11-18 21:55:01\"\n        }\n    ]\n}\n```\n\n#### Response (400 Bad Request)\n\n```json\n{\n    \"message\": \"The estado operativo parameter is required\"\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\n\n### Get Bioetanol-total item by eficiencia produccion\n\n#### Request (GET)\n\n```postman\ncurl --location 'http://localhost:4000/dev/v1/bioetanol-total/eficiencia-produccion/95.5?limit=5\u0026orderAt=asc' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": [\n        {\n            \"uuid\": \"3bfff0ca-8cba-4113-bc94-4afb6e7feb7e\",\n            \"estadoOperativo\": \"821\",\n            \"eficienciaProduccion\": \"95.5\",\n            \"capacidadInstalada\": \"1000\",\n            \"ventasTotales\": \"850\",\n            \"produccion\": \"900\",\n            \"createdAt\": \"2023-11-18 21:55:01\",\n            \"updatedAt\": \"2023-11-18 21:55:01\"\n        }\n    ]\n}\n```\n\n#### Response (400 Bad Request)\n\n```json\n{\n    \"message\": \"The eficiencia produccion parameter is required\"\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\n\n### Get Bioetanol-total item by capacidad instalada\n\n#### Request (GET)\n\n```postman\ncurl --location 'http://localhost:4000/dev/v1/bioetanol-total/capacidad-instalada/1000?limit=5\u0026orderAt=asc' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": [\n        {\n            \"uuid\": \"3bfff0ca-8cba-4113-bc94-4afb6e7feb7e\",\n            \"estadoOperativo\": \"821\",\n            \"eficienciaProduccion\": \"95.5\",\n            \"capacidadInstalada\": \"1000\",\n            \"ventasTotales\": \"850\",\n            \"produccion\": \"900\",\n            \"createdAt\": \"2023-11-18 21:55:01\",\n            \"updatedAt\": \"2023-11-18 21:55:01\"\n        }\n    ]\n}\n```\n\n#### Response (400 Bad Request)\n\n```json\n{\n    \"message\": \"The capacidad instalada parameter is required\"\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\n\n### Get Bioetanol-total item by ventas totales\n\n#### Request (GET)\n\n```postman\ncurl --location 'http://localhost:4000/dev/v1/bioetanol-total/ventas-totales/850?limit=5\u0026orderAt=asc' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": [\n        {\n            \"uuid\": \"3bfff0ca-8cba-4113-bc94-4afb6e7feb7e\",\n            \"estadoOperativo\": \"821\",\n            \"eficienciaProduccion\": \"95.5\",\n            \"capacidadInstalada\": \"1000\",\n            \"ventasTotales\": \"850\",\n            \"produccion\": \"900\",\n            \"createdAt\": \"2023-11-18 21:55:01\",\n            \"updatedAt\": \"2023-11-18 21:55:01\"\n        }\n    ]\n}\n```\n\n#### Response (400 Bad Request)\n\n```json\n{\n    \"message\": \"The ventas totales parameter is required\"\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\n\n### Get Bioetanol-total item by produccion\n\n#### Request (GET)\n\n```postman\ncurl --location 'http://localhost:4000/dev/v1/bioetanol-total/produccion/900?limit=5\u0026orderAt=asc' \\\n--header 'x-api-key: f98d8cd98h73s204e3456998ecl9427j' \\\n--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c' \\\n--header 'Content-Type: application/json'\n```\n\n#### Response (200 OK)\n\n```json\n{\n    \"message\": [\n        {\n            \"uuid\": \"3bfff0ca-8cba-4113-bc94-4afb6e7feb7e\",\n            \"estadoOperativo\": \"821\",\n            \"eficienciaProduccion\": \"95.5\",\n            \"capacidadInstalada\": \"1000\",\n            \"ventasTotales\": \"850\",\n            \"produccion\": \"900\",\n            \"createdAt\": \"2023-11-18 21:55:01\",\n            \"updatedAt\": \"2023-11-18 21:55:01\"\n        }\n    ]\n}\n```\n\n#### Response (400 Bad Request)\n\n```json\n{\n    \"message\": \"The produccion parameter is required\"\n}\n```\n\n#### Response (400 Bad Request - Headers)\n\n```json\n{\n    \"message\": \"Bad request, check missing or malformed headers\"\n}\n```\n\n#### Response (401 Unauthorized)\n\n```json\n{\n    \"message\": \"Not authenticated, check x_api_key and Authorization\"\n}\n```\n\n\u003cbr\u003e\n\n\u003c/details\u003e\n\n\u003cbr\u003e\n\n## Section 3) Functionality Testing and References.\n\n### 3.0) Functionality test [🔝](#index-)\n\n\n\u003cdetails\u003e\n  \u003csummary\u003eView details\u003c/summary\u003e\n\n\u003cbr\u003e\n\n#### [Watch Playlist](https://www.youtube.com/playlist?list=PLCl11UFjHurDt4nwIAFwH0FTX5hvPl5re)\n\n  \u003ca href=\"https://www.youtube.com/playlist?list=PLCl11UFjHurDt4nwIAFwH0FTX5hvPl5re\"\u003e\n    \u003cimg src=\"./doc/assets/Api_Bioethanol_Statistics_DynamoDB_yt.png\" /\u003e\n  \u003c/a\u003e \n\n\u003cbr\u003e\n\n\u003c/details\u003e\n\n### 3.1) References [🔝](#index-)\n\n\u003cdetails\u003e\n   \u003csummary\u003eView details\u003c/summary\u003e\n\n  \u003cbr\u003e\n\n#### Reports\n*   [Bioethanol price reports](https://glp.se.gob.ar/biocombustible/reporte_precios_bioetanol.php)\n*   [Dataset biotenanol | National Data](https://www.datos.gob.ar/dataset/energia-estadisticas-biodiesel-bioetanol)\n*   [Excel Statistics Secretariat of Energy](https://view.officeapps.live.com/op/view.aspx?src=http%3A%2F%2Fwww.energia.gob.ar%2Fcontenidos%2Farchivos%2FReorganizacion%2Finformacion_del_mercado%2Fmercado_hydrocarburos%2Fbio%2Festatisticas_biocombustibles.xls\\\u0026wdOrigin=BROWSELINK)  \n\n#### Dynamodb installation\n\n*   [DynamoDB on local executable](https://cloudkatha.com/how-to-install-dynamodb-locally-on-windows-10/#:~:text=How%20to%20Install%20DynamoDB%20Locally%20on%20Windows%2010,Use%20DynamoDB%20Locally%20to%20Create%20a%20Table%20)\n\n#### DynamoDB theory\n\n*   [DynamoDB Guide](https://www.dynamodbguide.com/local-secondary-indexes/)\n*   [Official Api DynamoDB Doc](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-dynamo-db.html#http-api-dynamo-db-create-table)\n*   [Attribute definition](https://tipsfolder.com/range-key-dynamodb-ac5558671b26d5d7f2a34cd9b138c01e/#:~:text=The%20range%20attribute%20is%20the%20type%20key%20of,%28which%20means%20it%20can%20only%20hold%20one%20value%29.)\n*   [Partition Key vs Sort](https://stackoverflow.com/questions/27329461/what-is-hash-and-range-primary-key)\n*   [Filter Expressions in Dynamodb](https://www.alexdebrie.com/posts/dynamodb-filter-expressions/)\n*   [Examples of Filter Expressions in Dynamodb](https://dynobase.dev/dynamodb-filterexpression/)\n\n#### Dynamodb operations sdk v-3\n\n*   [Operations](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/javascript_dynamodb_code_examples.html)\n*   [Operations API-REST](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-dynamo-db.html)\n\n#### Video tutorials\n\n*   [Dynamodb local config](https://www.youtube.com/watch?v=-KRykmVIoV0\\\u0026t=663s)\n*   [Crud Dynamodb](https://www.youtube.com/watch?v=hOcbHz4T0Eg)\n\n#### Dynamodb examples\n\n*   [serverless plugin](https://www.serverless.com/plugins/serverless-dynamodb-local)\n*   [Creating multiple tables](https://stackoverflow.com/questions/47327765/creating-two-dynamodb-tables-in-serverless-yml)\n*   [dynamodb serverless example](https://github.com/serverless/examples/tree/v3/aws-node-rest-api-with-dynamodb-and-offline)\n*   [Dynamodb SDK examples](https://github.com/aws-samples/aws-dynamodb-examples/tree/master/DynamoDB-SDK-Examples/node.js)\n*   [CRUD Dynamodb](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-dynamo-db.html)\n\n#### Dynamodb code\n\n*   [Api Rest Base](https://github.com/jacksonyuan-yt/dynamodb-crud-api-gateway)\n\n#### Tools\n\n*   [AWS Design Tool app.diagrams.net](https://app.diagrams.net/?splash=0\\\u0026libs=aws4)\n\n#### API Gateway\n\n*   [Hello good Api-Gateway Practices](https://docs.aws.amazon.com/whitepapers/latest/best-practices-api-gateway-private-apis-integration/rest-api.html)\n*   [Creating Custom Api-keys](https://towardsaws.com/protect-your-apis-by-creating-api-keys-using-serverless-framework-fe662ad37447)\n\n#### Bookstores\n\n*   [Field validation](https://www.npmjs.com/package/node-input-validator)\n*   [uuidv4 generator](https://www.npmjs.com/package/uuid)\n*   [Nodemon Usage](https://www.npmjs.com/package/nodemon)\n\n#### Package.json\n\n*   [Setting up parallel scripts](https://stackoverflow.com/questions/30950032/how-can-i-run-multiple-npm-scripts-in-parallel)\n\n#### Formating prettier\n\n*   [Formatting Node.js codebase with Prettier](https://dev.to/zsevic/formatting-nodejs-codebase-with-prettier-3ghi)\n*   [Set up a Node.js App with ESLint and Prettier ](https://dev.to/devland/set-up-a-nodejs-app-with-eslint-and-prettier-4i7p)\n\n#### Formating remark-link\n\n*   [remark-inline-links](https://github.com/remarkjs/remark-inline-links)\n*   [remark-lint-list-item-indent](https://www.npmjs.com/package/remark-lint-list-item-indent)\n\n#### Testing\n\n*   [How to mock process env in jest](https://jestjs.io/docs/configuration#setupfiles-array)\n\n\u003cbr\u003e\n\n\u003c/details\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandresweitzel%2Fapi_bioethanol_statistics_dynamodb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandresweitzel%2Fapi_bioethanol_statistics_dynamodb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandresweitzel%2Fapi_bioethanol_statistics_dynamodb/lists"}