[https://projects.nayra.coop/browse/CIDEM]
- REST API
- Laravel 5.6
- MySql (MariaDB)
- Passport (API Authentication)
- VUEjs (Frontend)
- bootstrap 4
Estandar de repuesta API json 1.0 https://jsonapi.org/format/ El mismo está implementado en laravel https://laravel.com/docs/5.6/eloquent-resources
En redacción - a partir de aquí nada es definido
Tipo de Servicio: Análisis, Asistencia técnica, Calibración, Calificación, Certificación/Homologación/Regímenes Especiales, Control ambiental/Medio ambiental, Control de calidad, Desarrollo de procesos, Desarrollo de productos, Diseño de producto, Ensayo, Formación de RRHH, Peritaje, Programación y desarrollo software, Tecnología de Gestión, Otros.
Sector al que está destinado el servicio: Alimentos y bebidas, Química y petroquímica, Metalmecánica, Automotriz, Minería, Agricultura, Ganadería, Construcción (incl. materiales), Salud humana y animal, Cuero, Papel, Madera, Textil, Biotecnología, Nanotecnología, Tics, Diseño, Energía, Sistema científico tecnológico, Electrónica, Industria cultural, Transporte, Educación, Sociedad civil/Economía social/Asociativismo/cooperativas, Comunidad, Organismos públicos, Sector privado en general, Organismos No Gubernamentales, Otros
Atributo | Descripción | Tipo |
---|---|---|
id | unsigned integer | |
slug | string | |
name | Nombre del servicio | string |
description | descripción de servicio | text |
website | string | |
icon | imagen png | string |
para crear categorias entre elementos. Para ser aplicados como filtros
Atributo | Descripción | Tipo |
---|---|---|
id | unsigned integer | |
type_id | id asociado al tipo de filtro | foreign key |
slug | nombre de uso interno | string (sin espacios) |
name | nombre público | string |
description | text | |
icon | ruta a imagen png | string |
parent | filtro padre (ej: unidad es padre subunidad) | unsigned integer - foreign key |
Atributo | Descripción | Tipo |
---|---|---|
id | unsigned integer | |
type | nombre de uso interno | string (sin espacios) |
name | nombre público | string |
description | text | |
icon | ruta a imagen png | string |
parent | filtro padre (ej: unidad es padre subunidad) | unsigned integer - foreign key |
Atributo | Descripción | Tipo |
---|---|---|
id | unsigned integer | |
slug | string | |
name | nombre del proveedor | string |
first_name | nombre responsable | string |
last_name | apellido responsable | string |
email proveedor | string | |
phone1 | telefono proveedor | string |
phone2 | telefono proveedor | string |
address1 | dirección proveedor | string |
address2 | dirección proveedor | string |
website | sitio web proveedor | string |
Atributo | Descripción | Tipo |
---|---|---|
id | unsigned integer | |
subject | asunto contacto | string |
email del solicitante | string | |
message | mensaje | text |
Los endpoints DELETE implementarán siempre un *soft delete*.
En principio no implementamnos verbo **PATCH**.
Se listan los endpoints para interactuar con la API con ejemplos.
-
GET api/services
-
POST api/services
-
GET api/services/{id}
-
UPDATE api/services/{id}
-
DELETE api/services/{id}
-
POST api/services/import
-
GET api/services/{id}/filters
-
UPDATE api/services/{id}/filters/{id}
POST y DELETE no los implementaríamos porque son "fijos"
API para tipos de filtro (FilterType). El usuario ADMIN puede definir que entidadespodrán ser utilizadas como filtro. Habrá configurados por defecto 4 tipos: Unidad, Subunidad, Tipo de servicio, Sector del Servicio
- GET api/filters
- POST api/filters
- GET api/filters/{id}
- UPDATE api/filters/{id}
- DELETE api/filters/{id}
ver Services
- GET api/providers
- POST api/providers
- GET api/providers/{id}
- UPDATE api/providers/{id}
- DELETE api/providers/{id}
- GET api/messages
- GET api/message/{id}
- DELETE api/message/{id}
HTTP/1.1 200
Content-Type: application/json
{
"data": [
{
"id": 1,
"slug": "aliquam-repellendus-et-dolore-ad-inventore-et",
"name": "Dolore delectus omnis sapiente iste eligendi aliquam.",
"summary": "Fully-configurable high-level pricingstructure",
"description": "Explicabo distinctio dolore odio sed. Quidem expedita commodi modi sed repellendus. Accusantium placeat quis deserunt quis.",
"website": "cruz.org",
"icon": "https://lorempixel.com/200/200/food/?34483",
"created_at": "2018-08-08 15:24:09",
"updated_at": "2018-08-08 15:24:09"
},
.
.
.
],
"links": {
"first": "https://resource-api.nayra/api/services?page=1",
"last": "https://resource-api.nayra/api/services?page=10",
"prev": null,
"next": "https://resource-api.nayra/api/services?page=2"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 10,
"path": "https://resource-api.nayra/api/services",
"per_page": 3,
"to": 3,
"total": 30
}
}
HTTP/1.1 200
Content-Type: application/json
{
"id":12,
"title": "Cómputo de estadísticas",
"description" : "El servicio ofrece....",
"website": "https://eyetracker.ito",
"filters": [
{
"id":"1",
"key":"type",
"name":"Consultoría tecnológica",
"description":"Se desarrollan aplicaciones ...."
},
{...}
],
"tags":{"estadística", "Big Data"},
"contact":{
"id":"2",
"first_name":"",
"last_name" :"",
"provider_name" : "",
"phones": [{...}],
}
}
Se comunica con la API a traves de un access token provisto por passport
Se comunica con la API a traves de un access token provisto por passport (password grant token)