Giter Club home page Giter Club logo

api-politician's Introduction

Api que contiene los servicios necesarios para listar , crear y actualizar Politicos , creado con Php 7 , symfony 4 y Mongodb.

Iniciar el proyecto

Dentro del directorio del proyecto

composer install

El fichero ./config/routes.yml contiene las rutas necsarias para la conexion .

En caso de ejecucion en docker

docker-compose up -d

Se deberá modificar el fichero ./config/packages/doctrine.yml con la path de conexion {server: "mongodb://mongodb:27017"}

Arquitectura e implementacion

Se ha adoptado una Arquitectura hexagonal (puerto->adaptador) bajo una capa de programacion orientada a objetos pretendiendo conseguir cierto grado de abstraccion. Se han implementado las buenas practicas de DDD para separar conceptos e implementaciones , la aplicacion (a nivel estructural) queda separada en contextos de la siguiente forma :

Punto de entrada - /API : – Contiene los puntos de acceso a la aplicacion Controllers Capa de aplicacion - /Application – Contiene los casos de uso de la aplicacion , se ha aplicado el patron Command/Query -> Handler separando las solicitudes de modificacion del sistema de las de lectura y encapsulando la petición en objetos Command/Query. Capa de dominio - /Domain – Contiene los modelos de Dominio y las reglas de validacion . Capa de infraestructura - /Infrastructure *-- Contiene las implementaciones de de las interfaces del dominio .

Base de datos

  • DB_CONNECTION=mongodb
  • DB_HOST=localhost
  • DB_PORT=:27017
  • DB_DATABASE=dbfullstack

Puntos de Acceso

  • 1. Get politicians
     GET /?page=(1,2..)
    
  • 2. Create Politician
     POST /create : 
     {
         "titular": "Luís Vicente Castelló Vicedo",
         "partido": "AIA-Compromis",
         "partidoParaFiltro": "Compromís",
         "genero": "Hombre",
         "cargo": "Alcalde",
         "cargoParaFiltro": "Alcalde",
         "institucion": "Ayuntamiento de Agost",
         "ccaa": "Comunidad Valenciana",
         "sueldoBase": 37260,
         "complementosSueldo": "",
         "pagasExtrasSueldo": "",
         "otrasDietas": 0,
         "trieniosSueldo": "",
         "retribucionAnual": 37260,
         "retribucionMensual": 2661.43,
         "observaciones": "Dedicación Exclusiva"
     }
    
  • 3. Update Politician
     PUT /update : 
     {
         "titular": "Luís Vicente Castelló Vicedo",
         "partido": "AIA-Compromis",
         "partidoParaFiltro": "Compromís",
         "genero": "Hombre",
         "cargo": "Alcalde",
         "cargoParaFiltro": "Alcalde",
         "institucion": "Ayuntamiento de Agost",
         "ccaa": "Comunidad Valenciana",
         "sueldoBase": 37260,
         "complementosSueldo": "",
         "pagasExtrasSueldo": "",
         "otrasDietas": 0,
         "trieniosSueldo": "",
         "retribucionAnual": 37260,
         "retribucionMensual": 2661.43,
         "observaciones": "Dedicación Exclusiva"
     }
    

api-politician's People

Contributors

jorgegonzalezpizarro avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.