È possibile chiamare una funzione o uno script con un'API REST?

3

Diciamo che voglio creare un'app di allenamento e un sito web, l'utente inserisce le sue statistiche di allenamento e l'app mostra le sue statistiche con percentuali di grafici e simili.

Questo è un esempio Non voglio creare un'app di allenamento, solo per capire come funzionano le piattaforme.

Supponendo che voglio avere un'app Android, iOS e un sito web. Tutto con le stesse funzionalità.

Da quanto ho letto, le API REST vengono utilizzate per il back-end. Questo è un modo semplice per scambiare dati tra un'app e il database. Ma per quanto riguarda le operazioni sui dati?

Diciamo che voglio calcolare il tempo medio di allenamento (o qualcosa di molto più complesso). Devo computarlo sul dispositivo in modo da creare l'algoritmo 3 volte (Android, iOS e Web) o eseguire tutti i calcoli sul server?

Ho provato a leggere la documentazione di un REST api (Eve per Python) ma ho trovato solo operazioni sui dati come ottenere l'aggiornamento e l'eliminazione.

Le API REST forniscono solo operazioni sui dati, è possibile chiamare una funzione o uno script con un'API REST?

Forse ho frainteso tutto, quindi qualcuno potrebbe spiegarmi come funziona il back-end per una piattaforma multi-device?

    
posta Babajaga 05.05.2016 - 20:37
fonte

3 risposte

2

Hai dimenticato POST.

Devi imparare un po 'di più su REST (in realtà devi anche imparare un sacco di altre cose), ma basti dire che se vuoi fare qualsiasi altra operazione oltre a GET, PUT, PATCH o DELETE, probabilmente sarà un POST.

Inoltre, tieni presente che esistono altri modi per comunicare con un server oltre a REST. Alzati su una WebSocket e puoi praticamente fare quello che vuoi.

In ogni caso, un GET è sufficiente per quello che vuoi fare, se vuoi rimanere con REST.

    
risposta data 05.05.2016 - 21:34
fonte
1

Questo è RESTful?

public PlanksTotalController : Controller
{
    public double Get(int reps, TimeSpan duration)
    {
        return reps * duration;
    }
}

Forse, forse no. Non mi interessa davvero se soddisfa i criteri per alcune architetture ideali. Mi interessa che ho creato un servizio che è utile su tutte le piattaforme. Ho deduplicato il mio codice base centralizzandolo in qualche posto dove è disponibile ovunque io abbia bisogno di essere.

Le WebAPI non servono solo per archiviare e recuperare i dati grezzi. Nulla dice che non può fare un calcolo.

A proposito, penso che fintanto che i tuoi end point sono funzioni pure (dato lo stesso input, restituiranno sempre lo stesso output), che possono essere RESTful. Credo questo perché un determinato percorso di risorse ( ~/PlankTotal?reps=2&duration=3.5 ) restituirà sempre quella risorsa specifica (il numero 7 ).

Naturalmente, ci sono altre cose da considerare, come la rilevabilità, quando si dichiara che un'API è RESTful, ma questo è oltre il punto. Sì, è possibile (e dovrebbe ) centralizzare la logica aziendale in un servizio.

    
risposta data 05.05.2016 - 22:03
fonte
0

È possibile utilizzare la condivisione di risorse tra origini e inviare uno script come variabile che un motore di script valuta e restituisce la funzione valutata.

    
risposta data 06.05.2016 - 16:23
fonte

Leggi altre domande sui tag