Giter Club home page Giter Club logo

menze.rest.api's Introduction

MenzeAPI dokumentacija

v01. REST API for Menze desktop application.

Uvod

Menze projekt je softversko rješenje koje omogućava studentima (sveučilišta u Rijeci i drugih) pregled jelovnika studentskih restorana u realnom vremenu. Ovo je primjer moguće implementacije sustava i on nije u produkciji.

REST API se nalazi na adresi https://menzeapi.herokuapp.com/ .

Više o projektu: https://github.com/IvanoCar/menze.rest.api

Primjer klijent aplikacije administratora kuhinje: https://github.com/IvanoCar/menze.desktop

Ova verzija API omogućuje rad s korisnicima (administratori restorana), restoranima i hranom.

Spajanje na sučelje

Za spajanje na sučelje potrebno je imati client_id i pripadajući set API ključeva koji su različiti ovisno radi li se o pregledu podataka ili uređivanju podataka. Ovi parametri se šalju kao header requesta. Obvezni headeri kod svakog request-a su:

{
    "client_id": "VašID",
    "api-key": "GET/EDIT ključ",
    "content-type": "application/json"
}

Popis resursa

GET: /health

vraća stanje API u formatu:

{
    "status": "running",
    "version": 1.1
}

Klijent može pregledavati i uređivati samo one korisnike i restorane koji mu pripadaju (po client_id)

Pregled korisnika:

GET: /users

Stvaranje novog korisnika:

POST: /users

Parametri u JSON formatu:

{
    "restaurant_id": "ID",
    "username": "USERNAME",
    "password": "PASSWORD"
}

Pregled podataka određenog korisnika

GET: /users/:user_id

Uređivanje podataka određenog korisnika

PUT: /users/:user_id

Parametri u JSON formatu:

{
    "restaurant_id": "ID",
    "username": "USERNAME",
    "password": "PASSWORD"
}

Brisanje korisnika

DELETE: /users/:user_id

Pregled restorana

GET: /restaurants

Stvaranje novog restorana

POST: /restaurants

Parametri u JSON formatu:

{
    "name": "IME",
    "address": "ADRESA",
    "city": "GRAD",
    "postal_code": 00000
}

Pregled podataka određenog restorana

GET: /restaurants/:restaurant_id

Uređivanje podataka određenog restorana

PUT: /restaurants/:restaurant_id

Parametri u JSON formatu:

{
    "name": "IME",
    "address": "ADRESA",
    "city": "GRAD",
    "postal_code": 00000
}

Brisanje restorana (s pripadajućom hranom i statistikom)

DELETE: /restaurants/:restaurant_id

Pregled hrane određenog restorana

GET: /restaurants/:restaurant_id/food

Uređivanje hrane određenog restorana

PUT /restaurants/:restaurant_id/food

Hrana se mora formirati u format JSON te poslati na sljedeći način:

{
    "food_data": {}
}

Dakle value vrijednost je JSON.

Pregled podataka o više restorana istovremeno

GET: /retaurants/multiple/:restaurant_ids

ID-evi restorana se odvajaju znakom +, npr:

GET: /retaurants/multiple/ID001+ID002+ID010

Pregled podataka o hrani više restorana istovremeno

GET: /retaurants/multiple/:restaurant_ids/food

ID-evi restorana se odvajaju znakom +, npr:

GET: /retaurants/multiple/ID001+ID002+ID010/food

Pregled statistike restorana

GET: /retaurants/multiple/:restaurant_id/analytics

Ažuriranje statistike ide na način da se automatski ažurira nakon ažuriranje hrane. Jedina statistika koja se može pregledati je koliko puta dnevno su podatci ažurirani.

Return vrijednosti

Kod ažuriranja vrijednosti vraća se ažurirani objekt, u slučaju brisanja ne vraća se ništa. Status kodovi koji se vraćaju po REST standardima opisuju povratnu vrijednost.

U slučaju greške, u return vrijednosti uz pripadajući status kod dostupan je opis greške u formatu:

{
    "error":"KRATAK OPIS GREŠKE",
    "message": "OPIS"
}

ili u slučaju dohvaćanja više restorana ili hrane:

{
    "has_errors": True,
    "errors": {
        "count": 2,
        "restaurants": [
            "ID001",
            "ID005"
        ]
    },
    "results": [ {} ]
}

s tim da će uspješno dohvaćeni podati biti unutar "results" liste. Rezultati kod svakog uspješnog dohvaćanja će se enkapsulirati na način:

{
    "results": [ {}, {} ]
}

Kod dohvaćanja hrane jednog restorana:

{
    "results": {}
}

menze.rest.api's People

Contributors

ivanocar avatar

Watchers

 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.