File: Zend_Rest_Server.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (162 lines) | stat: -rw-r--r-- 4,512 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.rest.server">
    <title>Zend_Rest_Server</title>

    <sect2 id="zend.rest.server.introduction">
        <title>Einführung</title>

        <para>
            <classname>Zend_Rest_Server</classname> ist ein komplett-feature REST Server.
        </para>
    </sect2>

    <sect2 id="zend.rest.server.usage">
        <title>Verwenden des REST Servers</title>

        <example id="zend.rest.server.usage.example-1">
            <title>Grundsätzliche Verwendung von Zend_Rest_Server: Klassen</title>

            <programlisting language="php"><![CDATA[
$server = new Zend_Rest_Server();
$server->setClass('My_Service_Class');
$server->handle();
]]></programlisting>
        </example>

        <example id="zend.rest.server.usage.example-2">
            <title>Grundsätzliche Verwendung von Zend_Rest_Server: Funktionen</title>

            <programlisting language="php"><![CDATA[
/**
 * Sag Hallo
 *
 * @param string $who
 * @param string $when
 * @return string
 */
function sayHello($who, $when)
{
    return "Hallo $who, Gut $when";
}

$server = new Zend_Rest_Server();
$server->addFunction('sayHello');
$server->handle();
]]></programlisting>
        </example>
    </sect2>

    <sect2 id="zend.rest.server.args">
        <title>Aufruf eines Zend_Rest_Server Services</title>

        <para>
            Um ein <classname>Zend_Rest_Server</classname> Service aufzurufen, muß ein
            <constant>GET</constant>/POST <code>method</code> Argument mit einem Wert angegeben
            werden, welcher der Methode entspricht, die aufgerufen werden soll. Es können
            anschließend beliebig viele Argumente folgen, die entweder den Namen des Arguments
            verwenden (z.B. "wer"), oder man kann <code>arg</code> verwenden, gefolgt von der
            nummerischen Position des Arguments (z.B. "arg1").
        </para>

        <note>
            <title>Nummerischer Index</title>

            <para>
                Nummerische Argumente verwenden einen 1-basierenden Index.
            </para>
        </note>

        <para>
            Um <code>sayHello</code> vom obigen Beispiel aufzurufen, kann:
        </para>

        <para>
            <code>?method=sayHello&amp;who=Davey&amp;when=Day</code>
        </para>

        <para>
            verwendet werden, oder:
        </para>

        <para>
            <code>?method=sayHello&amp;arg1=Davey&amp;arg2=Day</code>
        </para>
    </sect2>

    <sect2 id="zend.rest.server.customstatus">
        <title>Senden eines eigenen Status</title>

        <para>
            Wenn Werte zurückgegeben werden, kann man, um einen eigenen Status zurückzugeben, ein
            Array mit einem <code>status</code> Schlüssel zurückgeben.
        </para>

        <example id="zend.rest.server.customstatus.example-1">
            <title>Einen eigenen Status zurückgeben</title>

            <programlisting language="php"><![CDATA[
/**
 * Sag Hallo
 *
 * @param string $who
 * @param string $when
 * @return array
 */
function sayHello($who, $when)
{
    return array('msg' => 'Ein Fehler ist aufgetreten', 'status' => false);
}

$server = new Zend_Rest_Server();
$server->addFunction('sayHello');
$server->handle();
]]></programlisting>
        </example>
    </sect2>

    <sect2 id="zend.rest.server.customxml">
        <title>Eigene XML Antworten zurückgeben</title>

        <para>
            Wenn man eigenes <acronym>XML</acronym> zurückgeben will, kann einfach ein
            <code>DOMDocument</code>, <code>DOMElement</code> oder <code>SimpleXMLElement</code>
            Objekt zurückgegeben werden.
        </para>

        <example id="zend.rest.server.customxml.example-1">
            <title>Eigenes XML zurückgeben</title>

            <programlisting language="php"><![CDATA[
/**
 * Sag Hallo
 *
 * @param string $who
 * @param string $when
 * @return SimpleXMLElement
 */
function sayHello($who, $when)
{
    $xml ='<?xml version="1.0" encoding="ISO-8859-1"?>
<mysite>
    <value>Hallo $who! Hoffentlich hast Du einen guten $when</value>
    <code>200</code>
</mysite>';

    $xml = simplexml_load_string($xml);
    return $xml;
}

$server = new Zend_Rest_Server();
$server->addFunction('sayHello');

$server->handle();
]]></programlisting>
        </example>

        <para>
            Die Antwort des Services wird ohne Modifizierungen zum Client zurückgegeben.
        </para>
    </sect2>
</sect1>