jpadilla / notaso

Conoce a tus profesores antes de llegar al salón.
http://www.notaso.com/
Other
19 stars 6 forks source link

Notaso Rest Api V2 #90

Closed luisjorge129 closed 8 years ago

luisjorge129 commented 8 years ago

Bueno gente, me dio con sentarme unos ratos en estos dias para actualizarles el api de Notaso y arreglar bastante lo que había hecho anteriormente, el api esta vez replica prácticamente todas las secciones que existen en notaso ahora mismo (excepto los POST).

Detalles del pull request

  1. REST API
    • Para acceder al api solo tienen que entrar a 127.0.0.1:8000/api/v2/.
    • Actualice Django Rest Framework de la versión 2.3.13 a la versión 3.2.5. Actualmente la ultima versión es la 3.3.1, no lo actualice a esta versión debido a que eliminaron el support de Django 1.6, mas detalles de los supports eliminados aquí Version 3.3.
    • Los endpoints son los mismo (excepto que se elimino el de search, debido a que cada endpoint ahora tienen search) que tenia el api anterior (universidades, departamentos y el de profesores), la diferencia mas drástica es que cada endpoint ahora tiene múltiples formas de ordenar los datos (por id o nombre por ejemplo), filtrar los datos (por ciudad o departamento por ejemplo) y en todos los endpoints puedes hacer search, además de que todos los retrieves funcionan con slug en vez de id.
    • Todo el código de la versión 1 del api se mantuvo intacto y no elimine absolutamente nada para evitar problemas en el casi de que alguien este consumiendo el api viejo, adicional a esto hice todos los cambios necesarios para que funcionara con la actualización del Django Rest Framework 3.2.5.
    • Agregue un app aparte que se llama "restapiv2", creo que con el tiempo es bien probable que se elimine la version 1.
    • El código prácticamente se hizo desde cero, por que la realidad que lo que había hecho del api era una puerca de código xD, el código ahora esta mucho mas limpio.
    • Se corrigió el issue #87.
    • Se completo el issue #70, una vez se suba la aplicación se suba a una versión >= Django 1.7.x se puede subir el Django Rest Framework a la ultima versión.
  2. Documentación
    • Para acceder a la documentación solo tienen que entrar a 127.0.0.1:8000/docs/
    • Instale Markdown y documente todos los endpoints, cada uno de los endpoint tienen ejemplos de sus respectivos filtros, ordering, search y parámetros opcionales.
  3. Aplicación
    • Añadí html para el error 404 (Page Not Found).
    • Añadí html para el error 500 (Internal Server Error).

      End Points

{
    "universities": "http://127.0.0.1:8000/api/v2/universities/", 
    "professors": "http://127.0.0.1:8000/api/v2/professors/", 
    "departments": "http://127.0.0.1:8000/api/v2/departments/"
}
jpadilla commented 8 years ago

@luisjorge129 esto está excelente, gracias por el tiempo y esfuerzo! Te deje unos comments después de review it por encima. Si te quisieras tirar la maroma de tratar de update el proyecto a 1.7.* por sería awesome! Si llegas a 1.8.* aún mejor ya que es LTS. Si te interesa podemos coordinar una vez hagamos merge de este.

Gracias por todo!

luisjorge129 commented 8 years ago

@jpadilla Seguro men, solo fue por fun que hice el cambio, además de que no me gustaba para nada como había escrito la primera versión. Por cierto, ya hice todos los cambios que mencionaste. Una vez que se complete este merge no tengo ningún problema para actualizar la aplicación a la versión de Django más reciente. Creo que algo que se debe cambiar va a ser como está estructurado el settings.py (por que el django-configurations no lo han actualizado para que funcione con Django1.8.x).

jpadilla commented 8 years ago

Acabo de deploy esto https://notaso.com/api/v2/

Gracias @luisjorge129!

luisjorge129 commented 8 years ago

@jpadilla Seguro men, me dejas saber cualquier cosa.