SlideShare une entreprise Scribd logo
1  sur  106
Télécharger pour lire hors ligne
REST API 

teoria i praktyka
Tomasz Dziuda
WordUp Trójmiasto 30.09.2017
Tak miało być...
{JSON}{JSO
N
}
{JSON}
{JSO
N
}
{JSO
N
}
{JSO
N
}
{JSO
N
}
{JSO
N
}
{JSO
N
}
{JSON}
{JSON}
{JSON}
{JSON}
{JSON}
{JSON}
{JSON}
{JSON}
{JSON}
a z reguły jest...
Co poszło nie tak?
add_filter('rest_enabled', '__return_false');
add_filter('rest_jsonp_enabled', '__return_false');
Security Checklist
Jeżeli projektujesz rozwiązanie
dla mas... nie licz na REST API
Jeżeli projektujesz rozwiązanie
dla mas... nie licz na REST API
Jednak wciąż możesz wykorzystać
REST API na wiele ciekawych
sposobów...
Zanim użyjesz REST API...
Włącz HTTPS
Źródło: https://blog.chromium.org/2017/04/next-steps-toward-more-connection.html
Źródło: https://jwt.io/
Uzyskiwanie tokena
Wysyłamy zapytaniem POST do endpointa /wp-json/jwt-auth/v1/token 

login i hasło użytkownika, którego chcemy autoryzować:
{
username: 'admin',
password: 'password'
}
Uzyskiwanie tokena
Wysyłamy zapytaniem POST do endpointa /wp-json/jwt-auth/v1/token 

login i hasło użytkownika, którego chcemy autoryzować:
{
username: 'admin',
password: 'password'
}
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ...",
"user_display_name": "admin",
"user_email": "admin@localhost.dev",
"user_nicename": "admin"
}
Gdy dane są poprawne otrzymujemy token i dane użytkownika:
Uzyskiwanie tokena
Do każdego zapytania wymagającego 

autoryzacji dodajemy nagłówek:
Authorization: Bearer WARTOŚĆ_TOKENA
Wymuś autoryzację
klientów
Publiczne API to...
Brak kontroli nad dostępem
do danych
LOG
Ryzyko wycieku danych
https://example.com/wp-json/wp/v2/users
Możliwość określenia wersji
WordPressa
wp-json/wp/v2/posts - WordPress >= 4.7
wp-json/wp/v3/posts - WordPress > 5.*
wp-json/wp/v2/posts - WordPress < 4.7
Karmienie botów informacjami
Zwiększone zużycie
zasobów serwera
Crawler 1
Crawler 2
Crawler 3 Crawler 4
Crawler 5
Crawler 6
Jak ograniczyć dostęp?
Jak ograniczyć dostęp?
Całkowite wyłączenie REST API może
w przyszłości skutkować problemy z
działaniem niektórych funkcji kokpitu
Jak ograniczyć dostęp?
add_filter( 'rest_authentication_errors', function( $result ) {
    if ( ! empty( $result ) ) {
        return $result;
    }
    if ( ! is_user_logged_in() ) {
    return new WP_Error( 

'rest_not_logged_in', 

'You are not currently logged in.', 

array( 'status' => 401 ) 

);
    }
    return $result;
});
Źródło: https://developer.wordpress.org/rest-api/using-the-rest-api/frequently-asked-questions/#can-i-disable-the-rest-api
Jak ograniczyć dostęp?
Źródło: https://pl.wordpress.org/plugins/jwt-authentication-for-wp-rest-api/
Niektóre wtyczki nie będą
działać po wyłączeniu REST API
Źródło: https://wordpress.org/plugins/disable-json-api/
Wyłączenie wybranych endpointów
Źródło: https://wordpress.org/plugins/wp-rollback/
Bardziej brutalne podejście ;-)
Pamiętaj o CORS
Pamiętaj o CORS
Cross-Origin Resource Sharing
Pamiętaj o CORS
Cross-Origin Resource Sharing
function dziudek_rest_api_allow_all_cors() {
remove_filter('rest_pre_serve_request', 'rest_send_cors_headers');
add_filter('rest_pre_serve_request', function($value) {
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST, GET, PUT, DELETE');
header('Access-Control-Allow-Credentials: true');
return $value;
});
}
add_action('rest_api_init', 'dziudek_rest_api_allow_all_cors', 20);
Pamiętaj o CORS
JSONP
JSONP
<script src="https://test.com/wp-json/wp/v2/posts?_jsonp=parse">
JSONP
<script src="https://test.com/wp-json/wp/v2/posts?_jsonp=parse">
Pomijamy CORS
JSONP
/**/parse({
code: "rest_not_logged_in",
message: "You are not currently logged in.",
data: 

{
status: 401
}
})
JSONP
/**/parse({
code: "rest_not_logged_in",
message: "You are not currently logged in.",
data: 

{
status: 401
}
})
JSONP
/**/parse({
code: "rest_not_logged_in",
message: "You are not currently logged in.",
data: 

{
status: 401
}
})
JSONP
function parse(input) {
console.log(input);
}
/wp-json/wp/v2/posts?_jsonp=parse
JSONP
/**/parse({
code: "rest_not_logged_in",
message: "You are not currently logged in.",
data: 

{
status: 401
}
})
Podatność Rosetta Flash
https://blog.avira.com/understanding-rosetta-flash-vulnerability/
Nie psuj REST API
REST API jest/będzie używane
NIE tylko przez Ciebie
Unikaj modyfikowania domyślnych pól endpointów
add_filter('rest_prepare_POST_TYPE', ...
+
unset($endpoint->data['field']);
W razie potrzeby dodawaj brakujące dane jako nowe pola
add_filter('rest_prepare_POST_TYPE', ...
+
$endpoint->data['new_field'] = 'abc';
... lub twórz własne endpointy
https://developer.wordpress.org/rest-api/extending-the-
rest-api/adding-custom-endpoints/
Staraj się nie modyfikować domyślnych parametrów
REST API
add_filter('rest_post_collection_params', 'prefix_per_page', 10, 1);
function prefix_per_page($params) {
if(isset( $params['per_page'])) {
$params['per_page']['maximum'] = 200;
}
return $params;
}
Wyposaż się w narzędzia
Postman
Źródło: https://www.getpostman.com/
Rozszerzenie JSON Viewer
Do pobrania: https://chrome.google.com/webstore/detail/json-viewer/gbmdgpbipfallnflgajpaliibnhdgobh
5 przepisów na
wykorzystanie REST API
1. Wymiana treści między
stronami
XML jest passé
JSON Feed
Źródło: https://jsonfeed.org/
XML jest passé
• JSON można łatwiej obsłużyć z poziomu klienta

• Nie zawsze musimy się martwić o CORS (JSONP)

• Nie musimy angażować kodu PHP
XML jest passé
• JSON można łatwiej obsłużyć z poziomu klienta

• Nie zawsze musimy się martwić o CORS (JSONP)

• Nie musimy angażować kodu PHP
XML jest passé
• JSON można łatwiej obsłużyć z poziomu klienta

• Nie zawsze musimy się martwić o CORS (JSONP)

• Szybsze ładowanie się strony (swoisty lazy load danych)
80 MB w XML
nawet 10 MB jako JSON *
* Zysk zależy głównie od struktury danych, ale plik JSON w zasadzie zawsze będzie lżejszy.
2. Eksport/import danych
JSON
Choć nie zawsze
Źródło: https://getpublii.com
Choć nie zawsze
• REST API może być wyłączone

• By mieć pełny dostęp do danych trzeba się
autoryzować, a Publii jest aplikacją desktopową, zatem
użytkownik musiałby zainstalować dodatkowy plugin
autoryzujący (np. poprzez JWT)
Choć nie zawsze
• REST API może być wyłączone

• By mieć pełny dostęp do danych trzeba się
autoryzować, a Publii jest aplikacją desktopową, zatem
użytkownik musiałby zainstalować dodatkowy plugin
autoryzujący (np. poprzez JWT)
3. WordPress jako headless CMS
Źródło: https://www.contentful.com/
{JSON}{JSO
N
}
{JSON}
{JSO
N
}
{JSO
N
}
{JSO
N
}
{JSO
N
}
{JSO
N
}
{JSO
N
}
{JSON}
{JSON}
{JSON}
{JSON}
{JSON}
{JSON}
{JSON}
{JSON}
{JSON}
Źródło: https://www.slideshare.net/dziudek/electron-wordpress
Źródło: https://ma.tt/2017/09/on-react-and-wordpress/
Źródło: https://code.facebook.com/posts/300798627056246/relicensing-react-jest-flow-and-immutable-js/
Autoryzacja
Cookies we wszystkich wypadkach poza motywem SPA nie
zadziałają. Rozważ inne formy autoryzacji np. JWT
4. Dedykowane panele
administracyjne
Źródło: https://developer.wordpress.com/calypso/
5. Sprawdzenie wiedzy
publiki o WordPressie ;-)
Pytanie 1. Ile darmowych motywów znajduje się w oficjalnym repozytorium? ~5000

Pytanie 2. W której wersji WP dodano obsługę treści poprzez REST API? 4.7.0

Pytanie 3. Twórca WordPressa i CEO firmy Automattic to: Matt Mullenweg

Pytanie 4. Gdzie odbył się tegoroczny WordCamp Polska? W Lublinie

Pytanie 5. Która z poniższych licencji nie jest w pełni zgodna z licencją GPL? Apache

Pytanie 6. Które z poniższych nie jest alternatywą dla REST API? SCP

Pytanie 7. Jaka jest najstarsza gałąź WordPressa otrzymująca łatki bezpieczeństwa? 4.1

Pytanie 8. Które z poniższych nie jest metodą zapytania HTTP? REMOVE
Odpowiedzi do Quizu
Jak działa WordUp Quiz?
Jak działa WordUp Quiz?
• Pobierane są podstrony tworzące pytania

• Aplikacja je przetwarza przy ładowaniu

• Użytkownik odpowiada na pytania*

• Odpowiedzi są wysyłane do dedykowanego endpointu

• Endpoint zapisuje dane w bazie i zwraca wynik
Jak działa WordUp Quiz?
• Pobierane są podstrony tworzące pytania

• Aplikacja je przetwarza przy ładowaniu

• Użytkownik odpowiada na pytania*

• Odpowiedzi są wysyłane do dedykowanego endpointu

• Endpoint zapisuje dane w bazie i zwraca wynik
Jak działa WordUp Quiz?
• Pobierane są podstrony tworzące pytania

• Aplikacja je przetwarza przy ładowaniu

• Użytkownik odpowiada na pytania*

• Odpowiedzi są wysyłane do dedykowanego endpointu

• Endpoint zapisuje dane w bazie i zwraca wynik
Jak działa WordUp Quiz?
• Pobierane są podstrony tworzące pytania

• Aplikacja je przetwarza przy ładowaniu

• Użytkownik odpowiada na pytania*

• Odpowiedzi są wysyłane do dedykowanego endpointu

• Endpoint zapisuje dane w bazie i zwraca wynik
Jak działa WordUp Quiz?
• Pobierane są podstrony tworzące pytania

• Aplikacja je przetwarza przy ładowaniu

• Użytkownik odpowiada na pytania*

• Odpowiedzi są wysyłane do dedykowanego endpointu

• Endpoint zapisuje dane w bazie i zwraca wynik
Podsumujmy
Pamiętaj o:
Pamiętaj o:
Pamiętaj o:
Stosować REST API czy nie?
Realizujesz projekt dla konkretnego klienta
Stosować REST API czy nie?
Realizujesz projekt dla konkretnego klienta
Tworzysz ogólnodostępną
wtyczkę bazującą na REST API
Stosować REST API czy nie?
Stosować REST API czy nie?
Szukasz gotowego, łatwo rozszerzalnego
back-endu dla swojej aplikacji
Stosować REST API czy nie?
Szukasz gotowego, łatwo rozszerzalnego
back-endu dla swojej aplikacji
Wyłącz publiczny dostęp do REST API
jeśli go nie używasz
Stosować REST API czy nie?
Stosować REST API czy nie?
Nie potrzebujesz dostępu do REST API na
stronach na które nie masz wpływu
Stosować REST API czy nie?
Nie potrzebujesz dostępu do REST API na
stronach na które nie masz wpływu
Chcesz stworzyć usługę bazującą
na tym, że REST API jest włączone
Stosować REST API czy nie?
Pytania?
tomasz@dziuda.com
@dziudek
http://dziudek.pl
http://www.slideshare.net/dziudek
Tomasz Dziuda

Contenu connexe

Tendances

Word up łódź kwiecień 2015
Word up łódź   kwiecień 2015Word up łódź   kwiecień 2015
Word up łódź kwiecień 2015Tomasz Dziuda
 
Dokąd zmierza WordPress?
Dokąd zmierza WordPress?Dokąd zmierza WordPress?
Dokąd zmierza WordPress?Tomasz Dziuda
 
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp SilesiaJak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp SilesiaTomasz Dziuda
 
Motywy dla WordPressa - historia prawdziwa - WordUp Katowice
Motywy dla WordPressa - historia prawdziwa - WordUp KatowiceMotywy dla WordPressa - historia prawdziwa - WordUp Katowice
Motywy dla WordPressa - historia prawdziwa - WordUp KatowiceTomasz Dziuda
 
Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Wojciech Klocek
 
Jak nadążyć za światem front endu
Jak nadążyć za światem front enduJak nadążyć za światem front endu
Jak nadążyć za światem front enduTomasz Dziuda
 
Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayTomasz Dziuda
 
20 Joomlasztuczek, które mogą CI się przydać
20 Joomlasztuczek, które mogą CI się przydać20 Joomlasztuczek, które mogą CI się przydać
20 Joomlasztuczek, które mogą CI się przydaćWojciech Klocek
 
Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Tomasz Dziuda
 
Jak Twoja strona może wygenerować niespodziewane koszta
Jak Twoja strona może wygenerować niespodziewane kosztaJak Twoja strona może wygenerować niespodziewane koszta
Jak Twoja strona może wygenerować niespodziewane kosztaTomasz Dziuda
 
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketwAsynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketwLuke Adamczewski
 
Statycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET WrocławStatycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET WrocławTomasz Dziuda
 
WP-API - teoria i praktyka - WordUp Trójmiasto #2
WP-API - teoria i praktyka - WordUp Trójmiasto #2WP-API - teoria i praktyka - WordUp Trójmiasto #2
WP-API - teoria i praktyka - WordUp Trójmiasto #2Tomasz Dziuda
 
WordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceWordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceDawid Urbański
 
Wielomilonowy ruch na wordpressie wordpress wordcamp gdynia 2016
Wielomilonowy ruch na wordpressie   wordpress wordcamp gdynia 2016Wielomilonowy ruch na wordpressie   wordpress wordcamp gdynia 2016
Wielomilonowy ruch na wordpressie wordpress wordcamp gdynia 2016Lukasz Wilczak
 
Empathy optymalizacja postgre_sql
Empathy optymalizacja postgre_sqlEmpathy optymalizacja postgre_sql
Empathy optymalizacja postgre_sqlSpodek 2.0
 
Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0Tomasz Dziuda
 
Serwer internetowy w systemie Linux
Serwer internetowy w systemie LinuxSerwer internetowy w systemie Linux
Serwer internetowy w systemie Linuxbm9ib2r5
 

Tendances (20)

Word up łódź kwiecień 2015
Word up łódź   kwiecień 2015Word up łódź   kwiecień 2015
Word up łódź kwiecień 2015
 
Dokąd zmierza WordPress?
Dokąd zmierza WordPress?Dokąd zmierza WordPress?
Dokąd zmierza WordPress?
 
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp SilesiaJak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
Jak tworzyć motywy przyjazne użytkownikom i programistom - WordUp Silesia
 
Motywy dla WordPressa - historia prawdziwa - WordUp Katowice
Motywy dla WordPressa - historia prawdziwa - WordUp KatowiceMotywy dla WordPressa - historia prawdziwa - WordUp Katowice
Motywy dla WordPressa - historia prawdziwa - WordUp Katowice
 
Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!Zabezpiecz swoją stronę w Joomla!
Zabezpiecz swoją stronę w Joomla!
 
Jak nadążyć za światem front endu
Jak nadążyć za światem front enduJak nadążyć za światem front endu
Jak nadążyć za światem front endu
 
Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training Day
 
Potęga pliku .htaccess
Potęga pliku .htaccessPotęga pliku .htaccess
Potęga pliku .htaccess
 
20 Joomlasztuczek, które mogą CI się przydać
20 Joomlasztuczek, które mogą CI się przydać20 Joomlasztuczek, które mogą CI się przydać
20 Joomlasztuczek, które mogą CI się przydać
 
Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Statycznie czy dynamicznie?
Statycznie czy dynamicznie?
 
Jak Twoja strona może wygenerować niespodziewane koszta
Jak Twoja strona może wygenerować niespodziewane kosztaJak Twoja strona może wygenerować niespodziewane koszta
Jak Twoja strona może wygenerować niespodziewane koszta
 
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketwAsynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
Asynchroniczny PHP i komunikacja czasu rzeczywistego z wykorzystaniem websocketw
 
Statycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET WrocławStatycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET Wrocław
 
WP-API - teoria i praktyka - WordUp Trójmiasto #2
WP-API - teoria i praktyka - WordUp Trójmiasto #2WP-API - teoria i praktyka - WordUp Trójmiasto #2
WP-API - teoria i praktyka - WordUp Trójmiasto #2
 
Android i REST
Android i RESTAndroid i REST
Android i REST
 
WordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyceWordUp Trójmiasto - Sage 9 w praktyce
WordUp Trójmiasto - Sage 9 w praktyce
 
Wielomilonowy ruch na wordpressie wordpress wordcamp gdynia 2016
Wielomilonowy ruch na wordpressie   wordpress wordcamp gdynia 2016Wielomilonowy ruch na wordpressie   wordpress wordcamp gdynia 2016
Wielomilonowy ruch na wordpressie wordpress wordcamp gdynia 2016
 
Empathy optymalizacja postgre_sql
Empathy optymalizacja postgre_sqlEmpathy optymalizacja postgre_sql
Empathy optymalizacja postgre_sql
 
Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0
 
Serwer internetowy w systemie Linux
Serwer internetowy w systemie LinuxSerwer internetowy w systemie Linux
Serwer internetowy w systemie Linux
 

Similaire à REST API - teoria i praktyka - WordUp Trójmiasto

JSON, REST API
JSON, REST APIJSON, REST API
JSON, REST API3camp
 
Budowa RESTowego api w oparciu o HATEOAS
Budowa RESTowego api w oparciu o HATEOASBudowa RESTowego api w oparciu o HATEOAS
Budowa RESTowego api w oparciu o HATEOASMateusz Stępniak
 
NK API - Przykłady
NK API - PrzykładyNK API - Przykłady
NK API - Przykładynasza-klasa
 
Zhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP TrojmiastoZhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP Trojmiastosecman_pl
 
Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows a...
Mts 2013   tomasz kopacz - windows 8, office 365, workflow manager, windows a...Mts 2013   tomasz kopacz - windows 8, office 365, workflow manager, windows a...
Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows a...Tomasz Kopacz
 
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013Mateusz Stępniak
 
Testowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnychTestowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnychSecuRing
 
Functional widgets in Rails
Functional widgets in RailsFunctional widgets in Rails
Functional widgets in RailsSebastian Sito
 
AADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScriptAADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScriptJacek Okrojek
 
Google App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjachGoogle App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjach3camp
 
Architektura to nie bzdura
Architektura to nie bzduraArchitektura to nie bzdura
Architektura to nie bzduraPawel Szulc
 
Service workers - bądź online, nawet kiedy jesteś offline!
Service workers - bądź online, nawet kiedy jesteś offline!Service workers - bądź online, nawet kiedy jesteś offline!
Service workers - bądź online, nawet kiedy jesteś offline!The Software House
 
Metaprogramowanie w JS
Metaprogramowanie w JSMetaprogramowanie w JS
Metaprogramowanie w JSDawid Rusnak
 
Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Bartlomiej Zass
 
Laravel workshops 1
Laravel workshops 1Laravel workshops 1
Laravel workshops 1Kamil Fojuth
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbaćBartosz Ratajczyk
 
Błędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówBłędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówArkadiusz Stęplowski
 

Similaire à REST API - teoria i praktyka - WordUp Trójmiasto (20)

JSON, REST API
JSON, REST APIJSON, REST API
JSON, REST API
 
Budowa RESTowego api w oparciu o HATEOAS
Budowa RESTowego api w oparciu o HATEOASBudowa RESTowego api w oparciu o HATEOAS
Budowa RESTowego api w oparciu o HATEOAS
 
NK API - Przykłady
NK API - PrzykładyNK API - Przykłady
NK API - Przykłady
 
Zhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP TrojmiastoZhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP Trojmiasto
 
Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows a...
Mts 2013   tomasz kopacz - windows 8, office 365, workflow manager, windows a...Mts 2013   tomasz kopacz - windows 8, office 365, workflow manager, windows a...
Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows a...
 
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
Budowa poprawnego i intuicyjnego api REST HATEOAS devfest@2013
 
Testowanie na 101 sposobów
Testowanie na 101 sposobówTestowanie na 101 sposobów
Testowanie na 101 sposobów
 
Testowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnychTestowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnych
 
Functional widgets in Rails
Functional widgets in RailsFunctional widgets in Rails
Functional widgets in Rails
 
Platforma Kontentowa
Platforma KontentowaPlatforma Kontentowa
Platforma Kontentowa
 
AADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScriptAADays 2015 - Jak to zrobic w JavaScript
AADays 2015 - Jak to zrobic w JavaScript
 
Google App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjachGoogle App Engine i Google Play Services w Twoich aplikacjach
Google App Engine i Google Play Services w Twoich aplikacjach
 
Architektura to nie bzdura
Architektura to nie bzduraArchitektura to nie bzdura
Architektura to nie bzdura
 
Service workers - bądź online, nawet kiedy jesteś offline!
Service workers - bądź online, nawet kiedy jesteś offline!Service workers - bądź online, nawet kiedy jesteś offline!
Service workers - bądź online, nawet kiedy jesteś offline!
 
Metaprogramowanie w JS
Metaprogramowanie w JSMetaprogramowanie w JS
Metaprogramowanie w JS
 
Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?Co nowego w VS 2013 dla programistów ASP.NET?
Co nowego w VS 2013 dla programistów ASP.NET?
 
Laravel workshops 1
Laravel workshops 1Laravel workshops 1
Laravel workshops 1
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
 
WordCamp Gdynia 2016
WordCamp Gdynia 2016WordCamp Gdynia 2016
WordCamp Gdynia 2016
 
Błędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderówBłędy userów, niedoróbki koderów
Błędy userów, niedoróbki koderów
 

Plus de Tomasz Dziuda

Wtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaWtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaTomasz Dziuda
 
Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Tomasz Dziuda
 
Wtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp LublinWtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp LublinTomasz Dziuda
 
Wtyczkowe kompendium
Wtyczkowe kompendiumWtyczkowe kompendium
Wtyczkowe kompendiumTomasz Dziuda
 
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp KrakówJak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp KrakówTomasz Dziuda
 
Webinar: 5 Tricks for WordPress web administrators
Webinar: 5 Tricks for WordPress web administratorsWebinar: 5 Tricks for WordPress web administrators
Webinar: 5 Tricks for WordPress web administratorsTomasz Dziuda
 
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomWordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomTomasz Dziuda
 
Jak nadążyć za światem front-endu?
Jak nadążyć za światem front-endu?Jak nadążyć za światem front-endu?
Jak nadążyć za światem front-endu?Tomasz Dziuda
 
WordUp Wrocław #3 2015
WordUp Wrocław #3 2015WordUp Wrocław #3 2015
WordUp Wrocław #3 2015Tomasz Dziuda
 
Jak tworzyć motywy przyjazne użytkownikom i programistom?
Jak tworzyć motywy przyjazne użytkownikom i programistom?Jak tworzyć motywy przyjazne użytkownikom i programistom?
Jak tworzyć motywy przyjazne użytkownikom i programistom?Tomasz Dziuda
 
Introduction to ECMAScript 2015
Introduction to ECMAScript 2015Introduction to ECMAScript 2015
Introduction to ECMAScript 2015Tomasz Dziuda
 

Plus de Tomasz Dziuda (13)

Wtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaWtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp Warszawa
 
Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12
 
Trello w praktyce
Trello w praktyceTrello w praktyce
Trello w praktyce
 
Wtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp LublinWtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp Lublin
 
Wtyczkowe kompendium
Wtyczkowe kompendiumWtyczkowe kompendium
Wtyczkowe kompendium
 
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp KrakówJak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
Jak Twoja strona moze wygenerować niespodziewane koszta? WordUp Kraków
 
Webinar: 5 Tricks for WordPress web administrators
Webinar: 5 Tricks for WordPress web administratorsWebinar: 5 Tricks for WordPress web administrators
Webinar: 5 Tricks for WordPress web administrators
 
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomWordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
 
Jak nadążyć za światem front-endu?
Jak nadążyć za światem front-endu?Jak nadążyć za światem front-endu?
Jak nadążyć za światem front-endu?
 
WordUp Wrocław #3 2015
WordUp Wrocław #3 2015WordUp Wrocław #3 2015
WordUp Wrocław #3 2015
 
Jak tworzyć motywy przyjazne użytkownikom i programistom?
Jak tworzyć motywy przyjazne użytkownikom i programistom?Jak tworzyć motywy przyjazne użytkownikom i programistom?
Jak tworzyć motywy przyjazne użytkownikom i programistom?
 
JSztuczki
JSztuczkiJSztuczki
JSztuczki
 
Introduction to ECMAScript 2015
Introduction to ECMAScript 2015Introduction to ECMAScript 2015
Introduction to ECMAScript 2015
 

REST API - teoria i praktyka - WordUp Trójmiasto