Strategia per il sito web che comunica con API sullo stesso server

1

Possiedo un'API RESTful che consente il recupero dei dati tramite richieste come GET http://example.com/users/id/1 (Codificato dopo questo tutorial ).

Il controller di accensione del codice ha il seguente aspetto:

class Example_api extends REST_Controller {

function user_get()
{
    $data = array('returned: '. $this->get('id'));
    $this->response($data);
}

Questa API è stata scritta appositamente per il motivo che dovrei essere in grado di accedere alla stessa logica del codice dal front-end del web così come dalle app mobili ecc. Ora, l'app mobile è facile da scrivere ma voglio trovare la strategia per utilizzando l'API dal sito web. Il sito web è essenzialmente seduto sullo stesso server che offre questa API e non mi sembra corretto effettuare una richiesta HTTP all'API dal codice e passare di nuovo attraverso la rete.

Quindi, la domanda è, come faccio a utilizzare l'API dal codice php nello stesso sito senza passare attraverso la rete.

    
posta recluze 31.03.2014 - 07:59
fonte

2 risposte

2

Sembra che sia l'API sia il sito web condividano un linguaggio comune (PHP). In tale scenario, spesso scopro che la funzionalità utilizzata dall'API può essere spesso estratta in un oggetto specifico meno API che altre soluzioni (come il sito Web) possono utilizzare.

Questo oggetto servirebbe da interfaccia condivisa per il sito Web e l'API. Pochissime funzionalità devono quindi vivere nel codice API in quanto funziona semplicemente come livello di traduzione tra le richieste HTTP e l'oggetto.

Inoltre, salva il sito Web dal dover effettuare chiamate di rete a un'API e consente di interagire con l'oggetto in modo più naturale.

Se la funzionalità dell'API è relativamente semplice, si corre il rischio di essere un approccio troppo architettato, quindi dovrai considerare se è necessario e mantenibile nella tua situazione specifica.

    
risposta data 25.07.2015 - 18:43
fonte
0

Per il momento, come ha detto 9000, non vedo alcun motivo reale per prendere un altro approccio. Tuttavia, se il design è il tuo obiettivo principale, forse dovresti separare la tua app web dal tuo server API? In questo modo sia la tua app Web sia le tue app mobili e native si connettono a un'implementazione REST uniforme. La velocità a quel punto è tutta sul tuo server API, e REST si aspetta quasi tutto il HTTP altrimenti non sarebbe semplice come REST.

    
risposta data 25.07.2015 - 17:42
fonte

Leggi altre domande sui tag