SlideShare ist ein Scribd-Unternehmen logo
1 von 42
Downloaden Sie, um offline zu lesen
AAPPIIGGIILLIITTYY 
HHeeuuttee kklliicckkeenn wwiirr uunnsseerree AAPPII eeiinnffaacchh mmaall zzuussaammmmeenn...... 
 
1 / 42 
HHeeuuttee 
MMiitt QQuuiizz!!
ÜÜbbeerr RRaallff EEggggeerrtt 
2 / 42
[B00] 
PPrroolloogg 
3 / 42
[B01] 
4 / 42 
NNeeuuee AAPPII 
iinn zzwweeii 
SSttuunnddeenn??
[B02] 
5 / 42 
NNiimmmm ddoocchh 
AAppiiggiilliittyy!!
[B03] 
IInn aa NNuuttsshheellll 
6 / 42
RReessttffuull WWeebb SSeerrvviicceess 
7 / 42 
CLIENT 
Web Browser 
PHP 
Javascript 
RUBY 
PYTHON 
REST SERVER 
/api/user/123 
/api/user 
/api/user 
/api/user/123 
/api/user/123 
USER DOMAIN 
getUserEntity() 
getUserCollection() 
addUserEntity() 
updateUserEntity() 
deleteUserEntity() 
GET Request 
JSON Response 
GET Request 
JSON Response 
POST Request 
JSON Response 
PUT Request 
JSON Response 
DELETE Request 
JSON Response 
Integer 
UserEntity 
void 
UserCollection 
Array 
Boolean 
Integer, Array 
Boolean 
Integer 
Boolean
RRPPCC WWeebb SSeerrvviicceess 
8 / 42 
Local 
CLIENT 
javascript 
RPC 
Client 
JSON 
Method:getUser 
Params:id 
USER DOMAIN 
getUserEntity() 
GET Request 
JSON Result 
Integer 
UserEntity 
RPC 
Server 
/json-rpc.php 
Remote Call 
JSON Result 
javascript 
JSON 
Method:addUser 
Params:name 
addUserEntity() 
POST Request 
JSON Result 
Array 
Boolean 
/json-rpc.php 
Remote Call 
JSON Result 
javascript 
XML 
Method:getUser 
Params:id 
getUserEntity() 
GET Request 
XML Result 
Integer 
UserEntity 
/xml-rpc.php 
Remote Call 
XML Result 
javascript 
XML 
Method:addUser 
Params:name 
addUserEntity() 
POST Request 
XML Result 
Array 
Boolean 
/xml-rpc.php 
Remote Call 
XML Result
VVeerrssiioonniieerruunngg 
ddeeffaauulltt VVeerrssiioonn ppeerr UURRLL 
VVeerrssiioonn 11 ppeerr UURRLL 
VVeerrssiioonn 22 ppeerr UURRLL 
ddeeffaauulltt VVeerrssiioonn ppeerr CCoonntteenntt NNeeggoottiiaattiioonn 
VVeerrssiioonn 11 ppeerr CCoonntteenntt NNeeggoottiiaattiioonn 
VVeerrssiioonn 22 ppeerr CCoonntteenntt NNeeggoottiiaattiioonn 
9 / 42
JJSSOONN // HHAALL // PPrroobblleemm 
10 / 42
WWEEIITTEERREE FFEEAATTUURREESS 
DDaatteennbbaannkk--bbaassiieerrtt CCooddee--bbaassiieerrtt aauutthheennttiiffiizziieerruunngg 
AAPPII DDookkuummeennttaattiioonn DDaatteennvvaalliiddiieerruunngg DDeeppllooyymmeenntt 
11 / 42 
[B04] [[BB0055]] [B06] 
[B07] [[BB0088]] [[BB0099]]
MMoodduullaarriissiieerruunngg 
ZZff--aappiiggiilliittyy ZZff--aappiiggiilliittyy--aaddmmiinn ZZff--aappiiggiilliittyy--ddooccuummeennttaattiioonn 
ZZff--aappiiggiilliittyy--ddooccuummeennttaattiioonn--sswwaaggggeerr ZZff--aappiiggiilliittyy--pprroovviiddeerr ZZff--aappiiggiilliittyy--WWeellccoommee 
ZZff--aappii--pprroobblleemm ZZff--ccoonnffiigguurraattiioonn ZZff--ccoonntteenntt--nneeggoottiiaattiioonn 
ZZff--ccoonntteenntt--vvaalliiddaattiioonn ZZff--ddeeppllooyy ZZff--ddeevveellooppmmeenntt--mmooddee 
ZZff--hhaall ZZff--mmvvcc--aauutthh ZZff--ooaauutthh22 
ZZff--rreesstt ZZff--RRPPCC ZZff--vveerrssiioonniinngg 
12 / 42
IInnssttaallllaattiioonn 
Curl und Composer 
$ curl -s https://getcomposer.org/installer | php -- 
$ php composer.phar create-project -sdev zfcampus/zf-apigility-skeleton /path/to/install 
$ cd /path/to/install 
Git und Composer 
$ git clone https://github.com/zfcampus/zf-apigility-skeleton.git /path/to/install 
$ cd /path/to/install 
$ php composer.phar install 
ZIP und Composer 
$ wget https://github.com/zfcampus/zf-apigility-skeleton/archive/master.zip 
$ unzip -d /path/to/install master.zip 
$ cd /path/to/install 
$ php composer.phar install 
Entwicklungsmodus einschalten und Rechte setzen 
$ php public/index.php development enable 
$ sudo chmod 777 -R config/ 
$ sudo chmod 777 -R data/ 
$ sudo chmod 777 -R module/ 
13 / 42
SSttaarrttsseeiittee 
14 / 42
[B04] 
DDBB--bbaassiieerrtteerr 
RREESSTT--SSeerrvviiccee 
15 / 42
DDaatteennbbaannkkmmooddeellll 
16 / 42
DDaatteennbbaannkkaaddaapptteerr 
SScchhrriittttee 11 bbiiss 66 17 / 42
RReesstt SSeerrvviiccee,, DDBB--bbaassiieerrtt 
SScchhrriittttee 11 bbiiss 66 18 / 42
RReesstt SSeerrvviiccee,, DDBB--bbaassiieerrtt 
19 / 42 SScchhrriittttee 77 bbiiss 1122
RReesstt SSeerrvviiccee,, DDBB--bbaassiieerrtt 
20 / 42 SScchhrriittttee 1133 bbiiss 1188
RREESSTT SSeerrvviiccee UUsseerr LLiissttee 
21 / 42
RREESSTT SSeerrvviiccee UUsseerr EEnnttiittyy 
22 / 42
[B10] 
PPOOSSTT 
PPUUTT 
DDEELLEETTEE 
23 / 42
RReesstt SSeerrvviiccee PPoosstt II 
24 / 42 SScchhrriittttee 11 bbiiss 33
RReesstt SSeerrvviiccee PPoosstt IIII 
25 / 42 SScchhrriittttee 44 bbiiss 66
RReesstt SSeerrvviiccee PPuutt II 
26 / 42 SScchhrriittttee 11 bbiiss 33
RReesstt SSeerrvviiccee PPuutt IIII 
27 / 42 SScchhrriitttt 44
RReesstt SSeerrvviiccee DDeelleettee 
28 / 42 SScchhrriittttee 11 bbiiss 33
[B06] 
AAUUTTHHEENNTTIIFFII-- 
ZZIIEERRUUNNGG 
29 / 42
AAuutthheennttiiffiizziieerruunngg II 
HTTP BASIC HTTP DIGEST OAUTH2 
HTpasswd 
$ htpasswd -c data/htpasswd apigility 
New password: ********* 
Re-type new password: ********* 
Adding password for user apigility 
$ 
30 / 42
AAuutthheennttiiffiizziieerruunngg IIII 
31 / 42 SScchhrriittttee 11 bbiiss 66
AAuutthheennttiiffiizziieerruunngg IIIIII 
32 / 42 SScchhrriitttt 77
AAuutthheennttiiffiizziieerruunngg IIVV 
33 / 42 SScchhrriitttt 88
[B05] 
CCooddee--bbaassiieerrtteerr 
RREESSTT SSEERRVVIICCEE?? 
34 / 42
[B11] 
35 / 42 
BBeeiimm 
NNääcchhsstteenn 
MMaall......
[B00] 
EEPPIILLOOGG 
36 / 42
[B12] 
37 / 42 
UUnndd wwaannnn 
kkoommmmtt 
DDaass QQuuiizz??
[B02] 
38 / 42 
FFrraaggee 11:: 
AAuuss wwiiee vviieelleenn 
eeiinnzzeellnneenn MMoodduulleenn 
wwuurrddee AAppiiggiilliittyy 
aauuffggeebbaauutt??
[B02] 
39 / 42 
FFrraaggee 22:: 
WWeellcchhee AArrtteenn 
vvoonn WWeebbsseerrvviicceess 
wweerrddeenn 
uunntteerrssttüüttzztt??
[B02] 
40 / 42 
FFrraaggee 33:: 
WWeellcchhee HHTTTTPP 
MMeetthhooddeenn hhaabbeenn 
wwiirr iimmpplleemmeennttiieerrtt??
AAPPIIGGIILLIITTYY 
KKllaapppptt ffüürr eeiinnffaacchhee AAPPIIss,, aannssoonnsstteenn iisstt HHaannddaarrbbeeiitt eerrffoorrddeerrlliicchh...... 
 
Repository: https://github.com/RalfEggert/phpughh-apigility 
41 / 42
BBiillddnnaacchhwweeiiss 
[B00] Fotos von Ralf Eggert 
[B01] Still here https://www.flickr.com/photos/thenovys/3784261365 von Abe Novy - CC-BY https://creativecommons.org/licenses/by/2.0/ 
[B02] Young student https://www.flickr.com/photos/audiolucistore/14159712431/ von www.audio-luci-store.it - CC-BY https://creativecommons.org/licenses/by/2.0/ 
[B03] Acorns https://www.flickr.com/photos/dno1967b/5431273344 von Daniel Oines - CC-BY https://creativecommons.org/licenses/by/2.0/ 
[B04] Fixing the database https://www.flickr.com/photos/dahlstroms/4140461901 von Håkan Dahlström - CC-BY https://creativecommons.org/licenses/by/2.0/ 
[B05] Monaco 14pt https://www.flickr.com/photos/polarity/3138680190 von Robert Agthe - CC-BY https://creativecommons.org/licenses/by/2.0/ 
[B06] RSA Securid Token - Credit Card Style https://www.flickr.com/photos/purpleslog/265657780 von Purple Slog - CC-BY https://creativecommons.org/licenses/by/2.0/ 
[B07] Shelf of Used Books https://www.flickr.com/photos/thedarkthing/5363586197 von William Ross - CC-BY https://creativecommons.org/licenses/by/2.0/ 
[B08] Ticket validator at Nice train station https://www.flickr.com/photos/traveleden/3797157077 von Simon - CC-BY https://creativecommons.org/licenses/by/2.0/ 
[B09] Test Lab - Supermicro Storage https://www.flickr.com/photos/jemimus/8533890844 von Robert - CC-BY https://creativecommons.org/licenses/by/2.0/ 
[B10] We are all fan of laptops https://www.flickr.com/photos/scottvanderchijs/4493248747 von Scott & Elaine van der Chijs - CC-BY https://creativecommons.org/licenses/by/2.0/ 
[B11] Laugh https://www.flickr.com/photos/wounded/4105835342 von Simon Claassen - CC-BY https://creativecommons.org/licenses/by/2.0/ 
[B12] Surprise https://www.flickr.com/photos/photographybycolby/11927931295 von Colby Stopa - CC-BY https://creativecommons.org/licenses/by/2.0/ 
Alle weiteren Screenshots wurden von Ralf Eggert erstellt. 
42 / 42

Weitere ähnliche Inhalte

Ähnlich wie PHPughh: Apigility

Government resources
Government resourcesGovernment resources
Government resourcesKatie Avery
 
Ip addres dan_subnet_dan_kelas
Ip addres dan_subnet_dan_kelasIp addres dan_subnet_dan_kelas
Ip addres dan_subnet_dan_kelasLoveiArika
 
Pengenalan i-pengenalan-internet
Pengenalan i-pengenalan-internetPengenalan i-pengenalan-internet
Pengenalan i-pengenalan-internetsamuel yosivan
 
250361327 pengenalan-intranet-pengenalan-internet
250361327 pengenalan-intranet-pengenalan-internet250361327 pengenalan-intranet-pengenalan-internet
250361327 pengenalan-intranet-pengenalan-internetwisnuwardanu
 
Pengenalan i-pengenalan-internet
Pengenalan i-pengenalan-internetPengenalan i-pengenalan-internet
Pengenalan i-pengenalan-internetsamuel yosivan
 
250361327 pengenalan-intranet-pengenalan-internet
250361327 pengenalan-intranet-pengenalan-internet250361327 pengenalan-intranet-pengenalan-internet
250361327 pengenalan-intranet-pengenalan-internetwisnuwardanu
 
Pengenalan i-pengenalan-internet
Pengenalan i-pengenalan-internetPengenalan i-pengenalan-internet
Pengenalan i-pengenalan-internetsamuel yosivan
 

Ähnlich wie PHPughh: Apigility (9)

Government resources
Government resourcesGovernment resources
Government resources
 
Ip addres dan_subnet_dan_kelas
Ip addres dan_subnet_dan_kelasIp addres dan_subnet_dan_kelas
Ip addres dan_subnet_dan_kelas
 
Ignasi valero 1
Ignasi valero 1Ignasi valero 1
Ignasi valero 1
 
Eosinofilia miocardiopatía, NUTRISIM
Eosinofilia miocardiopatía, NUTRISIMEosinofilia miocardiopatía, NUTRISIM
Eosinofilia miocardiopatía, NUTRISIM
 
Pengenalan i-pengenalan-internet
Pengenalan i-pengenalan-internetPengenalan i-pengenalan-internet
Pengenalan i-pengenalan-internet
 
250361327 pengenalan-intranet-pengenalan-internet
250361327 pengenalan-intranet-pengenalan-internet250361327 pengenalan-intranet-pengenalan-internet
250361327 pengenalan-intranet-pengenalan-internet
 
Pengenalan i-pengenalan-internet
Pengenalan i-pengenalan-internetPengenalan i-pengenalan-internet
Pengenalan i-pengenalan-internet
 
250361327 pengenalan-intranet-pengenalan-internet
250361327 pengenalan-intranet-pengenalan-internet250361327 pengenalan-intranet-pengenalan-internet
250361327 pengenalan-intranet-pengenalan-internet
 
Pengenalan i-pengenalan-internet
Pengenalan i-pengenalan-internetPengenalan i-pengenalan-internet
Pengenalan i-pengenalan-internet
 

Mehr von Ralf Eggert

ChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heuteChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heuteRalf Eggert
 
Der ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 EditionDer ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 EditionRalf Eggert
 
PHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnPHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnRalf Eggert
 
Alexa, what's next?
Alexa, what's next?Alexa, what's next?
Alexa, what's next?Ralf Eggert
 
Alexa, wohin geht die Reise
Alexa, wohin geht die ReiseAlexa, wohin geht die Reise
Alexa, wohin geht die ReiseRalf Eggert
 
8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface Meetup8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface MeetupRalf Eggert
 
Alexa Skill Maintenance
Alexa Skill MaintenanceAlexa Skill Maintenance
Alexa Skill MaintenanceRalf Eggert
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu LaminasRalf Eggert
 
Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?Ralf Eggert
 
Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100Ralf Eggert
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu LaminasRalf Eggert
 
Alexa for Hospitality
Alexa for HospitalityAlexa for Hospitality
Alexa for HospitalityRalf Eggert
 
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...Ralf Eggert
 
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenFortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenRalf Eggert
 
Die sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice ProjekteDie sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice ProjekteRalf Eggert
 
Künstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und WirklichkeitKünstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und WirklichkeitRalf Eggert
 
Multi-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon AlexaMulti-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon AlexaRalf Eggert
 
Mein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein BackendMein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein BackendRalf Eggert
 
Zend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next GenerationZend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next GenerationRalf Eggert
 

Mehr von Ralf Eggert (20)

ChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heuteChatGPT: unser täglich' Bot gib uns heute
ChatGPT: unser täglich' Bot gib uns heute
 
Der ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 EditionDer ultimative PHP Framework Vergleich 2023 Edition
Der ultimative PHP Framework Vergleich 2023 Edition
 
PHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickelnPHP Module als Rundum-Sorglos-Pakete entwickeln
PHP Module als Rundum-Sorglos-Pakete entwickeln
 
Alexa, what's next?
Alexa, what's next?Alexa, what's next?
Alexa, what's next?
 
Alexa, wohin geht die Reise
Alexa, wohin geht die ReiseAlexa, wohin geht die Reise
Alexa, wohin geht die Reise
 
8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface Meetup8. Hamburg Voice Interface Meetup
8. Hamburg Voice Interface Meetup
 
Welcome Bixby
Welcome BixbyWelcome Bixby
Welcome Bixby
 
Alexa Skill Maintenance
Alexa Skill MaintenanceAlexa Skill Maintenance
Alexa Skill Maintenance
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu Laminas
 
Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?Alexa Skills und PHP? Passt das zusammen?
Alexa Skills und PHP? Passt das zusammen?
 
Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100Mit Jovo von 0 auf 100
Mit Jovo von 0 auf 100
 
Vom Zend Framework zu Laminas
Vom Zend Framework zu LaminasVom Zend Framework zu Laminas
Vom Zend Framework zu Laminas
 
Alexa for Hospitality
Alexa for HospitalityAlexa for Hospitality
Alexa for Hospitality
 
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
Alexa, lass uns Geld verdienen – fünf Geschäftsmodelle, die wirklich funktion...
 
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche SprachanwendungenFortgeschrittene Techniken für erfolgreiche Sprachanwendungen
Fortgeschrittene Techniken für erfolgreiche Sprachanwendungen
 
Die sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice ProjekteDie sieben Projektphasen für Voice Projekte
Die sieben Projektphasen für Voice Projekte
 
Künstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und WirklichkeitKünstliche Intelligenz – Traum und Wirklichkeit
Künstliche Intelligenz – Traum und Wirklichkeit
 
Multi-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon AlexaMulti-Modal Voice Development with Amazon Alexa
Multi-Modal Voice Development with Amazon Alexa
 
Mein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein BackendMein Haus, mein Auto, mein Backend
Mein Haus, mein Auto, mein Backend
 
Zend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next GenerationZend/Expressive 3 – The Next Generation
Zend/Expressive 3 – The Next Generation
 

PHPughh: Apigility

  • 1. AAPPIIGGIILLIITTYY HHeeuuttee kklliicckkeenn wwiirr uunnsseerree AAPPII eeiinnffaacchh mmaall zzuussaammmmeenn......  1 / 42 HHeeuuttee MMiitt QQuuiizz!!
  • 4. [B01] 4 / 42 NNeeuuee AAPPII iinn zzwweeii SSttuunnddeenn??
  • 5. [B02] 5 / 42 NNiimmmm ddoocchh AAppiiggiilliittyy!!
  • 6. [B03] IInn aa NNuuttsshheellll 6 / 42
  • 7. RReessttffuull WWeebb SSeerrvviicceess 7 / 42 CLIENT Web Browser PHP Javascript RUBY PYTHON REST SERVER /api/user/123 /api/user /api/user /api/user/123 /api/user/123 USER DOMAIN getUserEntity() getUserCollection() addUserEntity() updateUserEntity() deleteUserEntity() GET Request JSON Response GET Request JSON Response POST Request JSON Response PUT Request JSON Response DELETE Request JSON Response Integer UserEntity void UserCollection Array Boolean Integer, Array Boolean Integer Boolean
  • 8. RRPPCC WWeebb SSeerrvviicceess 8 / 42 Local CLIENT javascript RPC Client JSON Method:getUser Params:id USER DOMAIN getUserEntity() GET Request JSON Result Integer UserEntity RPC Server /json-rpc.php Remote Call JSON Result javascript JSON Method:addUser Params:name addUserEntity() POST Request JSON Result Array Boolean /json-rpc.php Remote Call JSON Result javascript XML Method:getUser Params:id getUserEntity() GET Request XML Result Integer UserEntity /xml-rpc.php Remote Call XML Result javascript XML Method:addUser Params:name addUserEntity() POST Request XML Result Array Boolean /xml-rpc.php Remote Call XML Result
  • 9. VVeerrssiioonniieerruunngg ddeeffaauulltt VVeerrssiioonn ppeerr UURRLL VVeerrssiioonn 11 ppeerr UURRLL VVeerrssiioonn 22 ppeerr UURRLL ddeeffaauulltt VVeerrssiioonn ppeerr CCoonntteenntt NNeeggoottiiaattiioonn VVeerrssiioonn 11 ppeerr CCoonntteenntt NNeeggoottiiaattiioonn VVeerrssiioonn 22 ppeerr CCoonntteenntt NNeeggoottiiaattiioonn 9 / 42
  • 10. JJSSOONN // HHAALL // PPrroobblleemm 10 / 42
  • 11. WWEEIITTEERREE FFEEAATTUURREESS DDaatteennbbaannkk--bbaassiieerrtt CCooddee--bbaassiieerrtt aauutthheennttiiffiizziieerruunngg AAPPII DDookkuummeennttaattiioonn DDaatteennvvaalliiddiieerruunngg DDeeppllooyymmeenntt 11 / 42 [B04] [[BB0055]] [B06] [B07] [[BB0088]] [[BB0099]]
  • 12. MMoodduullaarriissiieerruunngg ZZff--aappiiggiilliittyy ZZff--aappiiggiilliittyy--aaddmmiinn ZZff--aappiiggiilliittyy--ddooccuummeennttaattiioonn ZZff--aappiiggiilliittyy--ddooccuummeennttaattiioonn--sswwaaggggeerr ZZff--aappiiggiilliittyy--pprroovviiddeerr ZZff--aappiiggiilliittyy--WWeellccoommee ZZff--aappii--pprroobblleemm ZZff--ccoonnffiigguurraattiioonn ZZff--ccoonntteenntt--nneeggoottiiaattiioonn ZZff--ccoonntteenntt--vvaalliiddaattiioonn ZZff--ddeeppllooyy ZZff--ddeevveellooppmmeenntt--mmooddee ZZff--hhaall ZZff--mmvvcc--aauutthh ZZff--ooaauutthh22 ZZff--rreesstt ZZff--RRPPCC ZZff--vveerrssiioonniinngg 12 / 42
  • 13. IInnssttaallllaattiioonn Curl und Composer $ curl -s https://getcomposer.org/installer | php -- $ php composer.phar create-project -sdev zfcampus/zf-apigility-skeleton /path/to/install $ cd /path/to/install Git und Composer $ git clone https://github.com/zfcampus/zf-apigility-skeleton.git /path/to/install $ cd /path/to/install $ php composer.phar install ZIP und Composer $ wget https://github.com/zfcampus/zf-apigility-skeleton/archive/master.zip $ unzip -d /path/to/install master.zip $ cd /path/to/install $ php composer.phar install Entwicklungsmodus einschalten und Rechte setzen $ php public/index.php development enable $ sudo chmod 777 -R config/ $ sudo chmod 777 -R data/ $ sudo chmod 777 -R module/ 13 / 42
  • 18. RReesstt SSeerrvviiccee,, DDBB--bbaassiieerrtt SScchhrriittttee 11 bbiiss 66 18 / 42
  • 19. RReesstt SSeerrvviiccee,, DDBB--bbaassiieerrtt 19 / 42 SScchhrriittttee 77 bbiiss 1122
  • 20. RReesstt SSeerrvviiccee,, DDBB--bbaassiieerrtt 20 / 42 SScchhrriittttee 1133 bbiiss 1188
  • 21. RREESSTT SSeerrvviiccee UUsseerr LLiissttee 21 / 42
  • 22. RREESSTT SSeerrvviiccee UUsseerr EEnnttiittyy 22 / 42
  • 23. [B10] PPOOSSTT PPUUTT DDEELLEETTEE 23 / 42
  • 24. RReesstt SSeerrvviiccee PPoosstt II 24 / 42 SScchhrriittttee 11 bbiiss 33
  • 25. RReesstt SSeerrvviiccee PPoosstt IIII 25 / 42 SScchhrriittttee 44 bbiiss 66
  • 26. RReesstt SSeerrvviiccee PPuutt II 26 / 42 SScchhrriittttee 11 bbiiss 33
  • 27. RReesstt SSeerrvviiccee PPuutt IIII 27 / 42 SScchhrriitttt 44
  • 28. RReesstt SSeerrvviiccee DDeelleettee 28 / 42 SScchhrriittttee 11 bbiiss 33
  • 30. AAuutthheennttiiffiizziieerruunngg II HTTP BASIC HTTP DIGEST OAUTH2 HTpasswd $ htpasswd -c data/htpasswd apigility New password: ********* Re-type new password: ********* Adding password for user apigility $ 30 / 42
  • 31. AAuutthheennttiiffiizziieerruunngg IIII 31 / 42 SScchhrriittttee 11 bbiiss 66
  • 35. [B11] 35 / 42 BBeeiimm NNääcchhsstteenn MMaall......
  • 37. [B12] 37 / 42 UUnndd wwaannnn kkoommmmtt DDaass QQuuiizz??
  • 38. [B02] 38 / 42 FFrraaggee 11:: AAuuss wwiiee vviieelleenn eeiinnzzeellnneenn MMoodduulleenn wwuurrddee AAppiiggiilliittyy aauuffggeebbaauutt??
  • 39. [B02] 39 / 42 FFrraaggee 22:: WWeellcchhee AArrtteenn vvoonn WWeebbsseerrvviicceess wweerrddeenn uunntteerrssttüüttzztt??
  • 40. [B02] 40 / 42 FFrraaggee 33:: WWeellcchhee HHTTTTPP MMeetthhooddeenn hhaabbeenn wwiirr iimmpplleemmeennttiieerrtt??
  • 41. AAPPIIGGIILLIITTYY KKllaapppptt ffüürr eeiinnffaacchhee AAPPIIss,, aannssoonnsstteenn iisstt HHaannddaarrbbeeiitt eerrffoorrddeerrlliicchh......  Repository: https://github.com/RalfEggert/phpughh-apigility 41 / 42
  • 42. BBiillddnnaacchhwweeiiss [B00] Fotos von Ralf Eggert [B01] Still here https://www.flickr.com/photos/thenovys/3784261365 von Abe Novy - CC-BY https://creativecommons.org/licenses/by/2.0/ [B02] Young student https://www.flickr.com/photos/audiolucistore/14159712431/ von www.audio-luci-store.it - CC-BY https://creativecommons.org/licenses/by/2.0/ [B03] Acorns https://www.flickr.com/photos/dno1967b/5431273344 von Daniel Oines - CC-BY https://creativecommons.org/licenses/by/2.0/ [B04] Fixing the database https://www.flickr.com/photos/dahlstroms/4140461901 von Håkan Dahlström - CC-BY https://creativecommons.org/licenses/by/2.0/ [B05] Monaco 14pt https://www.flickr.com/photos/polarity/3138680190 von Robert Agthe - CC-BY https://creativecommons.org/licenses/by/2.0/ [B06] RSA Securid Token - Credit Card Style https://www.flickr.com/photos/purpleslog/265657780 von Purple Slog - CC-BY https://creativecommons.org/licenses/by/2.0/ [B07] Shelf of Used Books https://www.flickr.com/photos/thedarkthing/5363586197 von William Ross - CC-BY https://creativecommons.org/licenses/by/2.0/ [B08] Ticket validator at Nice train station https://www.flickr.com/photos/traveleden/3797157077 von Simon - CC-BY https://creativecommons.org/licenses/by/2.0/ [B09] Test Lab - Supermicro Storage https://www.flickr.com/photos/jemimus/8533890844 von Robert - CC-BY https://creativecommons.org/licenses/by/2.0/ [B10] We are all fan of laptops https://www.flickr.com/photos/scottvanderchijs/4493248747 von Scott & Elaine van der Chijs - CC-BY https://creativecommons.org/licenses/by/2.0/ [B11] Laugh https://www.flickr.com/photos/wounded/4105835342 von Simon Claassen - CC-BY https://creativecommons.org/licenses/by/2.0/ [B12] Surprise https://www.flickr.com/photos/photographybycolby/11927931295 von Colby Stopa - CC-BY https://creativecommons.org/licenses/by/2.0/ Alle weiteren Screenshots wurden von Ralf Eggert erstellt. 42 / 42