Fornire sia interfacce RESTful che Java?

3

Sto scrivendo un servizio RESTful in Java, ovviamente è la tipica interfaccia basata su HTTP.

Mi chiedo se il servizio fornisca un'interfaccia Java che abbia la stessa semantica dell'interfaccia RESTful? Penso che l'interfaccia Java faciliterà altri codici Java per chiamare il servizio. (Il codice Java client non ha bisogno di utilizzare il client HTTP per attivare le richieste HTTP per invocare RESTful) Il problema è che è difficile scrivere la stessa interfaccia semantica Java su RESTful, intendo lo stesso semantico.

Qualche consiglio per il design? Grazie!

    
posta 卢声远 Shengyuan Lu 16.07.2013 - 15:55
fonte

4 risposte

4

The problem is it's difficult to write same semantic Java interface to a RESTful one, I mean same semantic.

Che cosa è difficile? Il modo standard per eseguire le interfacce REST in Java consiste nella scrittura di un'interfaccia Java e nell'aggiunta di alcune annotazioni JAX-RS, tutto qui.

    
risposta data 16.07.2013 - 16:14
fonte
0

Non scrivo in Java, ma valgono gli stessi concetti.

Per la maggior parte dei progetti su cui lavoro, cerco di fare entrambe le cose. Fondamentalmente il mio progetto è impostato in modo tale che l'interfaccia REST usi solo l'API sottostante. Fondamentalmente il flusso è:

REST -> Front-end API -> Useful code

In questo modo posso scrivere front-end aggiuntivi per lo stesso back-end. Generalmente non rilascio l'API, ma cerco di tenerlo in uno stato che, se deve essere rilasciato, può essere.

Ad esempio, in un progetto, avevo bisogno di aprire un'API TCP usando JSON e fornire pacchetti di output UDP. Dato che tutto stava già attraversando l'API standard, questo era davvero semplice.

In risposta alla tua domanda, rilascerei solo l'API REST (come indicato da @MichaelBorgwardt, non è così terribile come sembra) quindi devi solo supportarne ufficialmente uno, ma sicuramente tenerli separati così è facile per rilasciarlo come libreria o aggiungere un front-end diverso.

    
risposta data 16.07.2013 - 16:30
fonte
0

Guarda le tue esigenze. Hai un solido requisito per REST? Questo cliente è di fronte o interno? Le risposte a queste domande possono rispondere per te.

Se esterno, vorrei solo fare REST e averlo fatto. Se interno, guarda i tuoi consumatori e prendi una decisione. Farei l'uno o l'altro e non entrambi.

    
risposta data 16.07.2013 - 17:57
fonte
0

Se hai la risorsa per creare l'interfaccia Java, fallo. Sono sicuro che l'API REST sia la tua API principale, solitamente perché è un sistema client-server. Non è difficile scrivere codice client che chiama REST api direttamente ma è anche più lungo e se lo usi molto, vedrai le ripetizioni dappertutto.

Ciò che accade di solito è scrivere un wrapper nativo per le interfacce più usate per aiutare le persone a scrivere applicazioni client. Inoltre, offre un ulteriore vantaggio che quando si modifica l'interfaccia REST è possibile aggiornare semplicemente il wrapper, ad es. quando cambi RIP api dal ritorno dell'applicazione / json all'applicazione / hal + json il tuo wrapper restituisce ancora l'array di oggetti.

Puoi vederlo ovunque. Twitter, ad esempio, ha più di un wrapper Java. Ovviamente non hanno il tempo di scrivere wrapper per ogni lingua là fuori, ma è anche molto utile che molte persone mettano del tempo per scriverne uno.

    
risposta data 17.07.2013 - 01:13
fonte

Leggi altre domande sui tag