, L'applicazione Logic Layer

Nel l'intera soluzione, la parte più semplice è la realizzazione dello strato di logica applicativa. E 'banale ed è illustrato dal codice Python seguenti:

def corrente (req, cache, urlComponents): req.content_type = configuration.Atom.mimeType conn = MySQLdb.connect (host = configuration.Database.server, configuration.Database.user = user, passwd = configuration.Database.password, db = configuration.Database.db) cursor = conn.cursor () cursor.execute ( "SELECT * da voci ordine decrescente post_date") row = cursor.fetchone () generateHeader (req, riga) generateEntry (req, row) row = cursor.fetchmany (configuration.Blog.entryCount - 1) per l'entrata in fila: generateEntry (req, voce) generateFooter (req)

Non farti troppo eccitato dalla semplicità del codice, il codice fornisce un'infrastruttura di metodi che vengono chiamati. Il metodo di servizio AWeb illustra ciò che fa per la maggior parte, che è accettare dati, processi, e che persistono. Si a volte l'esecuzione di algoritmi per l'esecuzione di un certo tipo di calcolo. Durante la lavorazione, vengono applicate le regole di business che il processo di dati inviati e ricevuti. Per la portata di questa soluzione, i dati sono spinto e tirato, con molto poco in-tra il trattamento.

Un processo di drive esterni la logica applicativa, che nel caso della soluzione è un browser. La logica applicativa è innescato da una serie di richieste che vengono definite utilizzando gli URL. Ci sono altri modi di creare servizi Web che utilizzano altre tecnologie, ma attenzione questo articolo è di utilizzare Representational State Transfer (REST). Utilizzando RIPOSO implica la progettazione e gli URL utilizzando il protocollo HTTP. Dal punto di vista del cliente, Ajax, il resto è un protocollo perfetto. Let's iniziare il processo di progettazione di applicazioni correlando ciò che il codice sorgente di esempio fa riferimento. Il nome della funzione nel codice sorgente di esempio è in corso, e l'ultimo naccessi al blog vengono restituiti. Quando si utilizza un lettore di blog o un client Ajax, si desidera visualizzare le voci correnti blog, quindi l'approccio più semplice è quello di associare l'URL http://myserver.com/ alla funzione corrente.

Ignorando la correttezza del URL per ora (io che discutere nel prossimo paragrafo), una domanda valida, come fa sapere il server di riferimento incrociato l'URL con una funzionalità specifica? Per impostazione predefinita, quando un server HTTP esegue il processore URL , l'URL è associato a un file. Se la richiesta è stata [http://myserver.com] / dir / file.html, quindi il server HTTP tenta di trovare il file [directory di base] / dir / file.html. Se il file viene trovato, il processore estensione del file è caricato, che nel caso di. Html sembra essere un processore statico file. (Se l'estensione è. PHP o. Aspx, allora il PHP o trasformatori di ASP.NET vengono eseguite e generare contenuti in base alle istruzioni nel file.) Da un punto di vista riposo, questa è l'algoritmo di URL sbagliato processore. Si tratta di un semplice algoritmo, ma è l'algoritmo di sbagliato, almeno dal punto di vista del riposo. capire perché ci riposiamo Want Dal punto di vista di riposo, tutti gli URL rappresentano le risorse sul lato server, tuttavia, mentre un file è una risorsa, non è una risorsa dal punto di vista della domanda. Questa è una distinzione molto grande che deve essere intesa: URL REST sono applicazioni specifiche risorse. Utilizzando una applicazione specifica risorsa significa che si sta esponendo le funzionalità basata sulla logica di business, non la tecnologia. Utilizzando REST, è possibile separare la risorsa per l'attuazione, molto simile interfaccia o di un contratto-driven development. Per illustrare la separazione delle risorse per l'attuazione, considerare i seguenti codice C #:

interfaccia IBase (void Method ();) Implementation1 classe: IBase (public void metodo () ()) Implementation2 classe: IBase (public void metodo () ())
  

L'interfaccia IBase definisce un metodo ed è stato attuato da due classi, Implementation1 e Implementation2. Questo processo è denominato interface-driven development, Perché quando il client utilizza la realizzazione, il client non utilizza l'effettiva attuazione, ma l'interfaccia dell'applicazione, come illustrato dal seguente codice:

class factory (public static IBase Instantiate () (return Implementation1 new ();)) class UseIt (public void metodo () (IBase obj = Factory.Instantiate (); / / ...))

Nel codice sorgente, ad esempio, la classe Factory è un metodo statico, un'istanza, che crea un'istanza di IBase istanziando Implementation1. Nella classe UseIt.Method, un'istanza di IBase viene creata un'istanza chiamando il metodo Factory.Instantiate. La classe UseIt non ha alcuna idea se Implementation1 o Implementation2 viene creata un'istanza, e utilizza l'interfaccia come definito dalla IBase, aspettandosi che i metodi di interfaccia per essere eseguite correttamente. Quando si utilizzano i linguaggi dinamici, è utilizzare la tipizzazione di anatra, e la definizione dei contratti risultato di funzionalità implicite .

Let's riguardano l'interfaccia-driven di sviluppo per gli URL e separare la risorsa dalla rappresentazione. La risorsa è l'interfaccia, e la rappresentazione è l'implementazione. Attualmente, la maggior parte delle implementazioni delle tecnologie Web legare insieme le risorse e la rappresentanza o utilizzare direttamente, come http://mydomain.com/item.aspx URL e http://mydomain.com/item.jsp illustrare. Le associazioni sono la diretta. aspx e. estensioni jsp, e l'interfaccia corretta definizione URL sarebbe stato http://mydomain.com/item. Ironia della sorte, tutte le tecnologie Web attuare la separazione della risorsa da rappresentanza per l'URL root /, come illustrato dal seguente HTTP conversazione. (Si noti che la conversazione è stata abbreviata per scopi spiegazione.)

 RichiestaGET / HTTP/1.1 Host: 192.168.1.242:8100 User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US, rv: 1.7.8) Gecko/20050511 RispostaHTTP/1.1 200 OK Server: Apache/2.0.53 (Ubuntu) PHP/4.3.10-10ubuntu4

Il flusso di esecuzione di un processore REST URL è semplice in quanto, per determinare quale codice utente di eseguire, ci limitiamo a sezionare l'URL. Sulla base della struttura della URL, il server appropriato gestore codice lato è chiamato. Se il cliente chiede l'URL / blog / entries / corrente, l'URL è token blog, le voci, e la corrente. Nel caso del software blog, il gestore di Python richiede almeno tre pezzi di URL che si traducono in una chiamata Python [modulo namespace]. [Modulo]. [Funzione]. L'URL chiamato dal client viene quindi tradotto in blog.enteries.current (). I pezzi URL dopo i primi tre pezzi sono passati alla funzione chiamata per mettere a punto le informazioni richieste.

La regola di richiedere almeno tre pezzi URL è puramente specifico per il mio quadro gestore di Python. Il tuo quadro potrebbe bisogno di due, o cinque, o qualunque sia il numero di pezzi URL è un numero arbitrario. Nell'esempio blog software, l'algoritmo utilizzato per il riferimento incrociato l'URL del codice personalizzato utilizzato convenzione su tecniche di configurazione. Eppure non vi è nulla di sbagliato con l'utilizzo di una tabella di ricerca di riferimento incrociato alcuni pezzi del URL con un pezzo di funzionalità personalizzate. Anche in questo caso, come riferimento incrociato i pezzi URL alla funzionalità personalizzate spetta a voi. Nell'attuare il processore RIPOSO proprio URL, l'attuazione effettiva varia a seconda della tecnologia utilizzata. Non c'è tema comune, ma ci sono due modi per implementare un processore REST URL:

• Trovare un modo per associare un URL di base con un gestore specifico. Per esempio, tendo a usare / servizi come base per tutti i miei servizi web. Il server deve sostenere l'idea che ogni volta che si avvia URL richiesto con / servizi, un gestore specifico si chiama. Il gestore specifico chiamato è il processore RIPOSO URL che rende quindi la chiamata del gestore.

• Se non è possibile associare un gestore di base per un URL di base, allora avete bisogno di scrivere un filtro HTTP. La differenza tra un filtro HTTP e un gestore HTTP è che un filtro è chiamato prima di un gestore. L'idea di filtri HTTP è quello di consentire all'utente di eseguire codice alcuni passaggi comuni a tutte le richieste.

Un esempio comune è l'autenticazione. Utilizzando un filtro HTTP, si avrà la possibilità di definire, che viene chiamato il gestore. Nel contesto del processore REST URL, il processore potrebbe essere inserita come ultimo passo, dopo tutti gli altri filtri hanno eseguito. E 'l'ultimo passaggio, perché si vuole passi come l'autenticazione da eseguire sul URL richiesto, e non l'URL reindirizzato esecuzione. Nell'attuare il processore URL RIPOSO, si deve ricordare che solo l'URL, che determina la funzionalità si chiama. Non è necessario utilizzare un cookie HTTP come parte della vostra decisione. Come illustrato più avanti in questo articolo, utilizzare i cookie HTTP per decidere quali funzionalità per l'esecuzione è molto cattivo design. Per la portata di questa soluzione, questo è tutto ciò parlerò per quanto riguarda il processore RIPOSO URL.

Attuazione degli URLSupponendo che si è implementato il processore RIPOSO proprio URL, il passo successivo è quello di definire gli URL utilizzati. In questa sezione, ho delineare gli URL utilizzati nella domanda di blog e spiegare loro in modo tale che la spiegazione può essere utilizzato in una natura generale. Per tutti gli URL del mio, ci sono un minimo di tre pezzi, e che è particolare per il processore REST URL sto utilizzando non pensare è necessario utilizzare lo stesso numero di pezzi. I due sono URL di base / blog e / o servizi blog /. Avete bisogno di questi due URL di base perché si servono due diversi tipi di contenuti: file HTML statici e contenuti Web service. In teoria, è possibile utilizzare un solo URL di base e hanno il servizio Web genera tutto, ma io sono diffidente di farlo, perché complica l'attuazione.

Facciamo un passo indietro e riflettere sul motivo per cui avere un unico URL complica l'attuazione. Nell'attuare un'applicazione Ajax SOA, si dispone di un codificatore client e un server coder. Il coder client non fa alcuna programmazione server e non vuole, vuole concentrarsi sul lato client delle cose. Così il client-side programmatore deve essere in grado di fare tutto ciò che vuole con i file statici gestito da un server HTTP. Se il programmatore ha bisogno di servizi AWeb per servire i file statici, allora lui o lei sarebbe a carico del programmatore server, e che la dipendenza non è desiderato. Da avere due URL di base, il programmatore client può fare ciò che lui o lei ritenga opportuno, e il programmatore server può fare ciò che lui o lei ritiene opportuno, indipendenti l'uno dall'altro.

Nota Non c'è alcuna ragione che non potrebbe avere un URL di base come / blog e poi suddividere tale spazio dei nomi base a / blog / statici e / o servizi blog /. Il punto da ricordare è che ci sono due spazi dei nomi URL: uno per il lato client e uno per il lato server. Perché usare mod_python per il lato server e Apache HTTPD per i contenuti statici, ha senso per i miei servizi Web per tutti Python base. Così, ho un gestore di servizi Web di base e specifici servizi Web, come ad esempio il software di blog, tutti implementato come uno spazio dei nomi Python. Il client base URL fianco per tutte le applicazioni è / e il server di base-URL fianco per tutte le applicazioni è / servizi. Con altre architetture, come ASP.NET, l'URL di base dovrebbe essere / blog, e quindi che la URL potrebbe essere ulteriormente suddiviso.

Non ho intenzione di concentrarsi sul client-side URL, perché sono guidati da gli URL del servizio Web per l'ambito di applicazione blog. Per esempio, se si ha l'URL di ingresso / services/blog/entries/archive/2006, ci sarebbe un file statica appropriato URL / blog/entries/archive/2006.

Prima di spiegare la natura degli URL, passiamo in rassegna i quattro comuni verbi HTTP. Di solito si usano due verbi HTTP GET e POST, spesso per la stessa finalità. Ad esempio, un form HTML è possibile inviare i suoi dati utilizzando il GET o POST. Dal punto di vista resto, la pratica è un male per usare GET per inviare i dati al server. Spiego come utilizzare ogni verbo HTTP nel seguente elenco. Il modo migliore per capire i verbi individuo è di pensare a loro come istruzioni molto simili comandi SQL. La differenza tra i verbi HTTP e comandi SQL SQL è che manipola le tabelle e le righe, e HTTP manipola le risorse associate con gli URL.

• DELETE (SQL equivalenti cancellare dalla): A usato raramente verbo che viene utilizzato per eliminare una risorsa sul lato server. Ad esempio, se il verbo DELETE è utilizzata per l'URL / servizi / blog / archivio / voci, il risultato è che tutti gli accessi al blog sul server vengono eliminati. Se l'URL è parametri di ricerca ad esso associati (ad esempio, ticker DELL = & value = 23), quindi tutte le voci che corrispondono ai parametri di ricerca sono soppressi. In SQL-parlare (e in termini di comando di eliminazione), i parametri di query SQL, dove sono i parametri.

• GET (SQL equivalenti Seleziona): A comunemente usati verbo che viene utilizzato per recuperare il contenuto dal server. L'URL specificato recupera le risorse associate con l'URL. Se ci sono i parametri di ricerca, una selezione di elementi associati con l'URL che corrispondono ai parametri di query viene eseguita. In SQL-parlano i parametri di ricerca sono i parametri in cui associati con l'istruzione SELECT.

• POST (Equivalente SQL stored procedure): A comunemente usati verbo che viene utilizzato per inviare i dati al server. E 'importante considerare un HTTP POST come una stored procedure. Le cose si fanno divertente con un HTTP POST per interpretare il ruolo del URL. Si potrebbe dire che l'URL definisce la risorsa che viene manipolato, e definire i parametri come manipolare la risorsa, ma che non è la natura di una stored procedure SQL. Il nome della stored procedure non di impatto che le tabelle sono manipolati. Così un'altra visione del post potrebbe essere quello di definire una risorsa che manipola altre risorse, e che le risorse sono manipolati dipende l'attuazione di un HTTP POST. Scegliere a seconda di quale definizione di un senso per voi. Trovo un HTTP POST essere sia troppo generico e troppo specifici per inchiodare ad una sola idea. Personalmente, scegliere la prima soluzione, in cui l'URL definisce la risorsa di manipolare, e che l'algoritmo usato per manipolare la risorsa dipende dai parametri. Un HTTP POST in grado di generare i dati anche se non è in genere utilizzato. In SQL-dire, le stored procedure in grado di generare risultati, anche se per la maggior parte si usa il comando SELECT.

• PUT (SQL equivalenti inserire): A usato raramente verbo che viene utilizzato per sostituire il contenuto di una risorsa. Se la risorsa associata con l'URL non esiste, allora viene creato. Gli URL utilizzati dall'applicazione sono descritti nelle sezioni che seguono.

 / servizi / blog / entries / corrente

In particolare, questo URL rappresenta l'ultima n le voci di un blog. Con il passare del tempo, l'ultimo nvoci cambiamento, ed è possibile utilizzare un singolo URL di riferimento per le informazioni migliori e più recenti. In senso astratto, l'URL rappresenta una vista su alcuni dati. Il problema si avrà nella vostra applicazione è che la gente vuole un unico URL che può essere utilizzato fino alla fine dei tempi. Per esempio, tornando all'esempio blog, se il mese è 06, il giorno è 07, e l'anno è il 2006, quindi per ottenere le voci più recenti e più grande blog, devi solo fare riferimento l'anno del caso, mese e giorno URL. Il problema è che nessuno avrebbe fatto presente, in quanto è troppo complicato e richiede la conoscenza di come i dati vengono organizzati. Un altro modo di organizzare le voci blog è quello di usare i numeri incrementali o valori a lungo che contano i secondi a partire dal 1970.

Da avere una visione "" URL, si crea un riferimento a dati organizzati da un algoritmo incorporato lato server. Il server-side algoritmo non è evidente per l'utente, e non ha bisogno di essere. Prestare attenzione di consentire ai parametri di query per selezionare i dati dalla visualizzazione. L'obiettivo della vista URL è quello di fornire un facile da ricordare e-URL utilizzo. Consentendo parametri di ricerca con un URL di visualizzazione è sciocco, perché lo stesso effetto si può ottenere utilizzando una risorsa URL, come si vedrà tra breve.

Visualizzare gli URL per la maggior parte accettano solo HTTP GET. Visualizzare gli URL non deve accettare un PUT HTTP o un HTTP DELETE, perché i dati recuperati è un riferimento a un altro URL. Se si vuole sostenere una PUT HTTP o un HTTP DELETE su un URL vista, è necessario eliminare o sostituire la logica associata con l'URL, e non i dati. E 'più difficile determinare se un URL fine dovrebbe accettare un HTTP POST. Si potrebbe sostenere che un POST HTTP URL di vista non ha senso, perché per la maggior parte non è possibile aggiornare i dati generati da una visualizzazione SQL. I counter che da una visione URL contiene una certa logica per estrarre i dati appropriati, e di un HTTP POST contiene la logica, un HTTP POST potrebbe essere usato per inserire i dati. Per quanto riguarda l'applicazione blog, postando l'URL / servizi / blog / entries / corrente avrebbe l'effetto di aggiungere una voce del blog, al momento che è stato inviato. Se si dovesse HTTP PUT un nuovo blog, il cliente avrebbe dovuto sapere come il server organizza i dati sottostanti blog. L'applicazione blog discussi in questo articolo è organizzato in base alla data, ma non è necessario.

 / servizi / blog / entries / archive

Questo URL specifica l'URL radice di base per tutti gli accessi al blog memorizzati sul server HTTP. In senso astratto, tutti i servizi Web hanno un concetto di risorsa principale URL. Lo scopo della risorsa principale URL è quello di definire un principale punto di accesso a tutte le risorse del Web service. Pensate a questo URL, la pagina index.html del servizio Web. Questo non vuol dire che alcuni degli URL sono scollegati dalla radice base gerarchia di URL (ad esempio, gli URL vista), ma significa che un dispositivo di fine possibile scorrere tutte le risorse utilizzando l'URL di root.

La radice URL è anche un esempio di un URL di raccolta. Collezione URL si comportano un po 'diverso rispetto URL regolari. Per esempio, si considerino i seguenti due risposte per l'URL di root. Si noti che l'URL non deve restituire dati XML, ma XML è utilizzato per la semplicità.

 embedded dati 

Ci sono due risposte nel codice di esempio. La prima risposta è un elemento radice che è come un bambino un elemento unico elemento. L'elemento elemento non contiene elementi figlio e ha due attributi href e id. La seconda risposta è come il primo, salvo che il punto è un elemento figlio di dati, e non c'è href. Invece, nella seconda risposta, vi è un riferimento url. La differenza tra le due risposte è la traduzione di ciò che dovrebbe essere restituito quando una collezione URL viene fatto riferimento.

Una collezione URL è un URL che di per sé non contiene tutti i dati, ma serve come un riferimento a una raccolta di pezzi di dati. Quando la collezione URL viene fatto riferimento, il cliente può restituire un insieme di riferimenti URL ai dati reali o dei dati vero e proprio. Prendendo come esempio l'applicazione blog, il formato Atom riferimento alla raccolta URL mezzi per tornare tutti i pezzi di dati. Tuttavia, è spesso impraticabile per restituire tutti i pezzi di dati, come il flusso di dati restituiti potrebbero essere enormi. Per ridurre il traffico, i riferimenti link vengono restituiti. Ma rincorrere la nostra coda di nuovo, diversi formati non consentono collegamenti. Come regola generale, restituire ciò che è più adatto per l'applicazione. Indipendentemente dalla modalità di restituzione dei dati, essere coerenti. Questo significa che se tutti i tuoi URL raccolta dei dati di ritorno, quindi i dati di ritorno, e viceversa.

Una radice o un URL di raccolta per la maggior parte saranno chiamati usando il verbo HTTP GET. Probabilmente ci saranno i parametri di ricerca per selezionare le voci specifiche, che, applicato gli URL con un gran numero di voci riduce la lunghezza del documento. Per esempio, l'URL view / servizi / blog / entries / attuale potrebbe anche essere espressi in / servizi / blog / entries / archivio? Ultimo = 35. Il parametro ultima query viene utilizzata per selezionare l'ultimo n voci. I verbi HTTP PUT e DELETE può chiedere se le voci di raccolta validi sono aggiunti. Mentre è possibile convertire un URL a una raccolta di dati URL delle risorse, ha senso farlo solo se il server non generare dinamicamente la raccolta. Ad esempio, nel caso del software blog, la raccolta viene generato da un database. Esecuzione PUT o DELETE non ha senso a meno che non vi sia la logica che elabora i dati inviati dai comandi. E, infine, è possibile elaborare un HTTP POST, se vi è associata la logica server-side.

 / services/blog/entries/archive/2006/07/06

Questo URL specifica un data-URL risorsa che quando si fa riferimento contiene i dati di un utente è interessato a. I dati che viene inviato è stabilito dal client nelle intestazioni HTTP Accept (questo è discusso più di cui all'articolo 5). Un data-URL risorsa è in grado di elaborare tutti i verbi HTTP (GET, PUT, POST, e DELETE), come spiegato nei paragrafi precedenti. Quando l'URL viene fatto riferimento, un pezzo di dati viene restituito, ma devi chiedere te ciò che il formato dei dati è. Utilizzando l'applicazione blog come esempio, il pezzo di dati restituiti devono far sembrare che l'URL fa riferimento a una collezione di URL, perché il formato Atom è un formato unico, che si assume ogni URL è una raccolta di blog, anche se ci potrebbero essere solo una singola voce.

Così, quando si crea dati gli URL delle risorse, tenere a mente che, anche se logicamente sono un pezzo unico di dati, il formato dei dati potrebbe rendere l'URL sembrare un URL di raccolta. Quando il client esegue una HTTP GET, il server non avrà nessun problema di generazione dei dati. Il server può confondersi, però, se il client esegue un PUT HTTP o un HTTP POST. I dati inviati al server potrebbe contenere più dati, anche se il server prevede solo un pezzo unico di dati. Così, la soluzione logica è quella di generare un errore dicendo che gli utenti non possono inviare più voci. Un'altra soluzione potrebbe comportare guardare attraverso l'elenco delle voci e il distacco del primo ingresso. Il problema con questa strategia è che essa è in contrasto con l'intento del cliente. Quando il client invia i dati che contiene più parti di informazioni, che si aspettano quei pezzi multipli di informazioni che devono essere salvati. Se il server salva solo un pezzo, il client è a chiedersi cosa sia andato storto. Quando viene generato un errore, il cliente non è a chiedersi cosa sia andato storto.

Dati gli URL delle risorse devono essere il più precisi possibile. Non si desidera che ogni ambiguità derivanti ad un certo punto più avanti nel tempo. Ad esempio, se l'applicazione tuo blog oggi consente solo un singolo utente, ma a un certo punto in futuro potrebbe consentire a più utenti, quindi aggiungere questa funzionalità. In caso di applicazione blog, che vorrebbe dire / user / servizi. Per la versione iniziale della domanda, / user / servizi possano essere hardcoded e non pertinenti durante l'elaborazione dell'URL. Tuttavia, si è creato un segnaposto per il caso in cui si dispone di più utenti. Non sto dicendo che dovrebbero compensare ogni variazione potenziale per il futuro, perché dopo tutto è possibile utilizzare il reindirizzamento server (ad esempio, http://user.server/services).

Ciò che si vuole ricordare è che i dati, gli URL delle risorse sopravviverà il server, la tecnologia, e anche la vostra azienda. URL sono come pezzi di immobili e fanno parte del vostro riconoscimento del marchio, quindi è necessario scegliere con attenzione. Una volta che la gente sappia e associare un URL non con il sito AWeb o società, è molto difficile per le persone a passare a un altro URL. Per esempio, immaginate se domani Google ha deciso di chiamarsi ReallyCoolServer. La società ReallyCoolServer non avrebbe subito lo stesso impatto o il riconoscimento del marchio, come Google è oggi.

 / servizi / blog / entries / archivio? delete = 35 e / services/blog/entries/archive/2005? passato = 35

Gli esempi in questo articolo mostra che gli URL possono avere parametri di query. Tuttavia, entrambe le URL presentati in questa sezione della rubrica non sono esempi di logica che ha la stessa intenzione solo la seconda è un URL accettabile. Il primo URL, non è accettabile perché implica modificare i dati. Hai già utilizzato parametri di query per eseguire una operazione di filtraggio di un HTTP GET. Uso dei parametri di query in tale contesto, è inaccettabile perché non cambia la natura alla base dei dati; si specifica un filtro. Il filtro può essere usato per convertire il set di risultati da una lingua ad un'altra, e può contenere da complessi algoritmi. Ma, indipendentemente l'algoritmo, non vi è alcuna modifica ai dati che viene filtrato.

Il primo URL, / servizi / entries / blog / archivio? Delete = 35, è diverso, nel senso che usa la parola "delete" e "elimina" significa eliminare un record (s). Quindi il parametro di query cambierà i dati sottostanti e non è accettabile. Naturalmente, vi è un'eccezione se la parola "delete" non significa eliminare, nel senso di "eliminare dalla sorgente di dati", ma significa invece eliminare dal set di risultati generati. Quindi eliminare la parola diventa una operazione di filtraggio ed è accettabile. Modifiche ai dati sottostanti sono il risultato di esecuzione del HTTP POST, PUT, DELETE o verbo. Gli URL utilizzati dall'applicazione blog sono relativamente generici e illustrare la maggior parte delle varianti che si incontrano quando REST costruzione di servizi Web basati su. Nel complesso, si dovrebbe ricordare che il riposo la costruzione dei servizi basati su Web è come interagire con un database che supporta SQL. Si dispone di un certo numero di verbi HTTP che può essere utilizzato per aggiungere, modificare, eliminare e recuperare i dati. Come i dati vengono gestiti è la responsabilità del progettista RIPOSO Web service. Non ho intenzione di camminare attraverso la realizzazione di server perché è un problema di applicazione. Nel caso della domanda di blog, si stanno manipolando accessi al blog, che sono la logica di business molto poco. Per esempio, se invece una domanda di blog con una domanda di mutuo, si può vedere che una domanda di mutuo è un po 'di logica, ed è anche un tipo di URL che non contengono dati ed è definito come segue.

 / servizi / guide / calcolo / pagamenti

L'URL definito non è un data-URL risorsa, ma una questione ", in cui le risposte" URL. Non ci sono dati sul lato server, o la visualizzazione di dati, o la raccolta dei dati. Vi è solo un calcolo, quindi, il verbo HTTP solo che può essere utilizzato è HTTP POST. Gli altri verbi HTTP non hanno senso e non deve essere usato in questo contesto.

un articolo presentato da Sonja Lande


Disclaimer:Il nostro sito non è responsabile per il contenuto di questo articolo. Webarticles è una risorsa gratuita di informazioni.
Importante: Presente articolo ", l'applicazione Logic Layer" è stato tradotto da un software automatico. Ci dispiace per eventuali errori di ortografia che possono essersi verificati. Grazie per la vostra comprensione.


Online: 446 users browsing the articles directory