Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

Inhaltsverzeichnis
Geleitwort des Fachgutachters
Einleitung
1 Einführung
2 Installation
3 Erste Schritte
4 Einführung in Ruby
5 Eine einfache Bookmarkverwaltung
6 Test-Driven Development
7 Rails-Projekte erstellen
8 Templatesystem mit ActionView
9 Steuerzentrale mit ActionController
10 Datenbankzugriff mit ActiveRecord
11 E-Mails verwalten mit ActionMailer
12 Nützliche Helfer mit ActiveSupport
13 Ajax on Rails
14 RESTful Rails und Webservices
15 Rails mit Plug-ins erweitern
16 Performancesteigerung
17 Sicherheit
18 Veröffentlichen einer Rails-Applikation auf einem Server
Ihre Meinung?

Spacer
 <<   zurück
Ruby on Rails 2 von Hussein Morsy, Tanja Otto
Das Entwickler-Handbuch
Buch: Ruby on Rails 2

Ruby on Rails 2
geb., mit DVD
699 S., 39,90 Euro
Rheinwerk Computing
ISBN 978-3-89842-779-1
Online bestellenPrint-Version jetzt bestellen
* versandkostenfrei in (D) und (A)
Pfeil 14 RESTful Rails und Webservices
  Pfeil 14.1 Was sind Webservices?
  Pfeil 14.2 REST
  Pfeil 14.3 RESTful Rails
  Pfeil 14.4 Einen Webservice anbieten
  Pfeil 14.5 Zugriff auf einen Webservice mit ActiveResource


Rheinwerk Computing - Zum Seitenanfang

14.4 Einen Webservice anbieten  Zur nächsten ÜberschriftZur vorigen Überschrift

Anforderung

Im Folgenden erstellen wir eine Web-Applikation, die einen Webservice anbieten kann.

Jeder Flughafen besitzt einen dreistelligen Buchstaben-Code (IATA-Code). Mit unserer Web-Applikation soll es möglich sein, die Flughäfen zu verwalten. Zu jedem Flughafen sollen einfach nur der Code und der entsprechende Name des Flughafens gespeichert werden. Neben der Weboberfläche soll auch eine REST-Schnittstelle erstellt werden, die es anderen Applikationen erlaubt, auf diese Daten zuzugreifen. Es soll z. B. möglich sein, zu einem Code den Namen des Flughafens abzufragen.

Mit Rails lassen sich diese Anforderungen leicht realisieren. Wir erstellen ein neues Rails-Projekt und generieren mit dem scaffold-Generator ein Model Airport mit dem passenden Controller und den Views.

  1. rails airport-service
  2. cd airport-service
  3. ruby script/generate scaffold airport \
    name:string code:string
  4. rake db:migrate

Rheinwerk Computing - Zum Seitenanfang

Die Weboberfläche  Zur nächsten ÜberschriftZur vorigen Überschrift

Nachdem wir den lokalen Rails-Server gestartet haben, können über die URL http://localhost:3000/airports die Flughäfen webbasiert verwaltet werden.

Abbildung  Liste der Flughäfen


Rheinwerk Computing - Zum Seitenanfang

Die API  topZur vorigen Überschrift

Über die URL http://localhost:3000/airports/3 können wir z. B. den dritten Airport anzeigen. Diese Darstellung ist jedoch nicht für die Kommunikation zwischen Applikationen geeignet.

Abbildung  Airport mit der ID 3

XML

Dafür bietet sich der Austausch über das XML-Format an. Der scaffold -Generator hat den Controller bereits entsprechend vorbereitet. Der Aufruf der dritten Airport-Ressource im XML-Format erfolgt dann über den Aufruf http://localhost:3000/airports/3.xml .

Abbildung  XML-Darstellung

Das genügt uns jedoch noch nicht. Wir hätten gerne die Möglichkeit, dass bei Übergabe eines Codes der Name des Airports ausgegeben wird.

Dazu fügen wir eine neue Action with_code im Airports-Controller hinzu, die zu dem Parameter code den entsprechenden Airport sucht.

Listing  app/controllers/airports_controller.rb

class AirportsController < ApplicationController
  ...

  def with_code
    @airport = Airport.find_by_code(params[:code])
    respond_to do |format|
      format.html { render :action => :show}
      format.xml  { render :xml => @airport }
    end
  end
end

Routing erweitern

Um jedoch per URL darauf zugreifen zu können, muss das Routing für die Ressource airports erweitert werden. Dazu kann die Option :collection angewendet werden, über die der Name unserer Methode und die HTTP-Methode angegeben werden.

Listing  config/routes.rb

map.resources :airports, :collection => {:with_code => :get}

Nach einem Neustart des lokalen Rails-Servers können wir zu einem Code den Namen eines Flughafens sowohl im HTML-Format als auch im XML-Format abfragen:

Abbildung  http://localhost:3000/airports/with_code?code=LUX

Abbildung  http://localhost:3000/airports/with_code.xml?code=LUX

Im nächsten Abschnitt wird gezeigt, wie eine andere Rails-Applikation mit Hilfe von ActiveResource sehr einfach auf den Webservice zugreifen kann.



Ihr Kommentar

Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen. >> Zum Feedback-Formular
 <<   zurück
  Zum Katalog
Zum Katalog: Ruby on Rails 2
Ruby on Rails 2
Jetzt bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: Ruby on Rails 3.1






 Ruby on Rails 3.1


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


Zum Katalog: JavaScript






 JavaScript


Zum Katalog: Schrödinger lernt HTML5, CSS3 und JavaScript






 Schrödinger lernt
 HTML5, CSS3
 und JavaScript


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de