esta API REST de libros se desarrollo con el proposito de para practicar con los conociminetos abquiridos en lo largo del tiempo, empezaremos mencionando las tecnologias y dependencias instaladas para su funcionalidad.
clone el proyecto
git clone https://link-to-projectingrese al directorio del proyecto
cd my-projectinstale las dependencias
npm installinicie el servidor
npm run startβββ πRestApiExpress
βββ .editorconfig
βββ .env
βββ .gitignore
βββ πbuild
βββ πapp
βββ app.js
βββ config.js
βββ πcontroller
βββ controller.bd.js
βββ πdatabase
βββ bd.js
βββ main.js
βββ πroutes
βββ books.routes.js
βββ πservices
βββ services.js
βββ πclient
βββ metodos.http
βββ json.png
βββ package-lock.json
βββ package.json
βββ README.MD
βββ πsrc
βββ πapp
βββ app.ts
βββ config.ts
βββ πcontroller
βββ controller.bd.ts
βββ πdatabase
βββ bd.ts
βββ main.ts
βββ πroutes
βββ books.routes.ts
βββ πservices
βββ services.ts
βββ types.d.ts
βββ tsconfig.json
se debe de contar con un entorno de javaScript para poder iteractuar con js desde local, en mi caso utilizo node.js, pero se puede utilizar bun o el de su preferencia.
ejecutar el comando y seguir las instrucciones para la inicializacion del proyecto
npm run initpara inicializar todo sin hacer nada utilizar
npm run init -yse debe de installar express para el manejo de las rutas y periciones http
npm install expresstambien se deben de instalar los tipos de express para que TS lo reconozca, esta dependencia seran de desarrollo
npm install @types/express -Dse debe de installar mysql para iteractuar con la BD en este caso utilice promise-mysql para trabajar de manera asincrona las query's
npm install promise-mysqltambien se deben de instalar los tipos de express para que TS lo reconozca, esta dependencia seran de desarrollo
npm install @types/express -Dse utiliza morgan para ver que tipos de solicitudes recibe el servidor y mas informacion que podria ser de interes, tambien se debe de instalar las dependencias para que TS lo reconozca, estas dos dependencias son de desarrollo.
npm install morgan @types/morgan -Dse utiliza esta dependencia para poder acceder a las variables de entorno, este nos ayuda a porteger los datos sensibles de nuestra api rest. igualmente se instala como desarrollo
npm install dotenv -Dse utilizo TypeScript para desarrollar la api y asi prevenir errores posibles que podrian succeder en produccion. esta es de desarrollo ya que compilaremos el codigo a javaScript
npm install TypeScript -Dposteriormente se inicializa TypeScript para asi poder tener el archivo de configuracion y aΓ±adir o quitar clausulas mucho mas comodo, en el
package.jsonse crea el comandotsc:tscy se ejecuta el comando.
npm run tsc -- --initse configura el archivo dependiendo el proyecto y sus necesidades, pero validar la ruta de salida
"outDir": "./build"ya que esta es donde se compilan los archivos de TS.
esta dependencia nos ayuda a compilar el codigo TS a JS cada vez que haya un cambio en un archivo, este es una alterniativa a nodemon pero mejorado
npm install ts-node-dev -Dse debe de modificar el package.json con el comando
"nombre-x" : "ts-node-dev ruta_archivo/s.ts"
esta dependencia de eslint nos ayuda a tener una consistencia al momento de escribir el codigo, asi todos programamos en un mismo idioma y no hay inconsistencia en el codigo
npm install ts-standard -Dse debe de modificar el package.json con el comando
"lint" : "ts-standard", este al momento de ejecutarlo detecta los errores del codigo, con el flat --fix"lint" : "ts-standard --fix", corrige los errores automaticamente
posteriormente tambien se aΓ±ade esta modificacion al package.json para que renocozca ts-standard
"eslintConfig": {
"parserOptions": {
"project": "./tsconfig.json"
},
"extends": [
"./node_modules/ts-standard/eslintrc.json"
]
}
GET /api/books/| Parameter | Type | Description |
|---|---|---|
null |
null |
null |
GET /api/books/:colum/:value| Parameter | Type | Description |
|---|---|---|
colum |
string |
Nombre de parametro |
value |
string |
Valor del parametro buscado |
POST /api/books/| Parameter | Type | Description |
|---|---|---|
null |
null |
null |
Content-Type: application/json,
{
"img": "../public/assets/img/1984.webp",
"producto": "deporte estremo",
"descripcion": "Lo sabes que es de lo mas real de la vida",
"categoria": "ficcion",
"precio": 47890
}
PUT api/books/:id| Parameter | Type | Description |
|---|---|---|
id |
string |
Identificador del libro |
Content-Type: application/json,
{
"img": "../public/assets/img/1984.webp",
"producto": "50 sombreas de harry potter",
"descripcion": "El que sabe de back-end y mas...",
"categoria": "ficcion",
"precio": 45000
}
PATCH api/books/:id| Parameter | Type | Description |
|---|---|---|
id |
string |
Identificador del libro |
Content-Type: application/json
{
"producto": "50 sombreas de harry potter",
"descripcion": "El que sabe de back-end"
}
DELETE api/books/:id| Parameter | Type | Description |
|---|---|---|
id |
string |
Identificador del libro |
