2010-11-29 3 views
0

Ich habe einige grundlegende Dokumentation der RazorGator-REST-API erhalten und muss diese in eine ASP.NET 3.5-Site integrieren. Ich habe meine Klassendatei erstellt, um die API aufzurufen, die meine WebRequest.Create ("URL TO API") enthält. Wie stelle ich dann die Ausgabe zur Verfügung, damit sie von anderen Seiten konsumiert werden kann? Das heißt, die Seite tickets.aspx muss die Ausgabeergebnisse dieses API-Aufrufs abrufen. Welche Konstrukte sollte ich verwenden, um dies in tickets.aspx verfügbar zu machen?Wie wird eine REST-API in ASP.Net 3.5 verwendet?

Danke!

bearbeiten Hier ist der Code, den ich bisher geschrieben habe:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.IO; 
using System.Net; 
using System.Text; 

namespace SeatEater.Web.UI.search 
{ 
public class RazorGatorService 
{ 

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://api.razorgator.com/ticketservice/ticets.xml?blahblah") as HttpWebRequest ; 
    HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 
    Stream receiveStream = response.GetResponseStream(); 
    StreamReader readStream = new StreamReader(receiveStream, encode); 
    response.close(); 
    readStream.close(); 

} 

} 

ich die Fehlermeldung:

A field initializer cannot reference the nonstatic field, method, or property 'field' 

in der zweiten Zeile des obigen Codeblock. Ich bin sehr neu in der Verwendung von HttpWebRequest und HttpWebResponse. Können Sie mir mitteilen, wie ich die Fehlermeldung, die ich erhalte, beheben kann?

Danke!

Antwort

4

Ich würde eine einfache Klasse erstellen, z. B. "RazorGatorResult.cs", die auf die verschiedenen Informationen von der API zurückgegeben wird. (oder genauer gesagt nur die Informationen, die Sie benötigen).

Sie können dann eine Assembly "RazorGatorService" in Ihrer Anwendung erstellen, auf die die Webanwendung verweist.

Die „RazorGatorService“ würde für den Aufruf der API und Hydratisieren der rohen HTTP-Antwort (sei es HTML, JSON, XML, etc.) in eine stark typisierte „RazorGatorResult“ Objekt, das verantwortlich sein kann Wird von der Web-Ebene verwendet.

Dann kann jede Seite einfach durch diesen Dienst rufen:

using RazorGatorService; 

RazorGatorResult result = RazorGatorService.GetSomeFunkyStuff(); 

Dies hat drei Vorteile:

1 - Sie können die API-Aufruf überall von Ihrem Web-Anwendung

2 - Die eigentliche Implementierung (HTTP-Aufruf, Deserialisierung) wird weg abstrahiert

3 - Sie können den Code in einer separaten Assembly beibehalten/feineinstellen und haben keinen Einfluss auf Ihre Web-Ebene.

+0

Wenn Sie sagen, hydratisieren die Raw HTTP-Antwort, in eine starke Art RazorGatorResult, würde ich eine Datentabelle erstellen, um die XML von der API zurückgegeben zu halten? Oder gibt es ein anderes, geeigneteres Objekt zum Speichern des von der API zurückgegebenen XML? – SidC

+0

Ich meine eine einfache Klasse, mit Gettern/Setter - wie ein POCO. – RPM1984

Verwandte Themen