ݺߣ

ݺߣShare a Scribd company logo
REST API 

teoria i praktyka
Tomasz Dziuda
WordUp Trójmiasto 30.09.2017
Tak miało być...
REST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp Trójmiasto
REST API - teoria i praktyka - WordUp Trójmiasto
{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...
REST API - teoria i praktyka - WordUp Trójmiasto
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 ԻǾԳó
Ź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=/slideshow/rest-api-teoria-i-praktyka-wordup-trjmiasto/80317425/"https:/test.com/wp-json/wp/v2/posts?_jsonp=parse">
JSONP
<script src=/slideshow/rest-api-teoria-i-praktyka-wordup-trjmiasto/80317425/"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 ԻǾԳó
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 Բę
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: /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/
REST API - teoria i praktyka - WordUp Trójmiasto
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 ;-)
REST API - teoria i praktyka - WordUp Trójmiasto
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

More Related Content

What's hot (20)

Word up łódź kwiecień 2015
Word up łódź   kwiecień 2015Word up łódź   kwiecień 2015
Word up łódź kwiecień 2015
Tomasz 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 Silesia
Tomasz 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 Katowice
Tomasz 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 endu
Tomasz 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 Day
Tomasz Dziuda
Potęga pliku .htaccess
Potęga pliku .htaccessPotęga pliku .htaccess
Potęga pliku .htaccess
Wojciech Klocek
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 koszta
Tomasz 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 websocketw
Luke Adamczewski
Statycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET WrocławStatycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET Wrocław
Tomasz 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 #2
Tomasz Dziuda
Android i REST
Android i RESTAndroid i REST
Android i REST
Roman Woźniak
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
Dawid 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 2016
Lukasz Wilczak
Empathy optymalizacja postgre_sql
Empathy optymalizacja postgre_sqlEmpathy optymalizacja postgre_sql
Empathy optymalizacja postgre_sql
Spodek 2.0
Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0
Tomasz Dziuda
Serwer internetowy w systemie Linux
Serwer internetowy w systemie LinuxSerwer internetowy w systemie Linux
Serwer internetowy w systemie Linux
bm9ib2r5
Word up łódź kwiecień 2015
Word up łódź   kwiecień 2015Word up łódź   kwiecień 2015
Word up łódź kwiecień 2015
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 Silesia
Tomasz 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 Katowice
Tomasz 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 endu
Tomasz 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 Day
Tomasz 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 koszta
Tomasz 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 websocketw
Luke Adamczewski
Statycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET WrocławStatycznie czy dynamicznie - infoMEET Wrocław
Statycznie czy dynamicznie - infoMEET Wrocław
Tomasz 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 #2
Tomasz 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 praktyce
Dawid 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 2016
Lukasz Wilczak
Empathy optymalizacja postgre_sql
Empathy optymalizacja postgre_sqlEmpathy optymalizacja postgre_sql
Empathy optymalizacja postgre_sql
Spodek 2.0
Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0Statycznie czy dynamicznie? v.2.0
Statycznie czy dynamicznie? v.2.0
Tomasz Dziuda
Serwer internetowy w systemie Linux
Serwer internetowy w systemie LinuxSerwer internetowy w systemie Linux
Serwer internetowy w systemie Linux
bm9ib2r5

Similar to REST API - teoria i praktyka - WordUp Trójmiasto (20)

JSON, REST API
JSON, REST APIJSON, REST API
JSON, REST API
3camp
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
Mateusz Stępniak
NK API - Przykłady
NK API - PrzykładyNK API - Przykłady
NK API - Przykłady
nasza-klasa
Zhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP TrojmiastoZhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP Trojmiasto
secman_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@2013
Mateusz Stępniak
Testowanie na 101 sposobów
Testowanie na 101 sposobówTestowanie na 101 sposobów
Testowanie na 101 sposobów
Katarzyna Javaheri-Szpak
Testowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnychTestowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnych
SecuRing
Platforma Kontentowa
Platforma KontentowaPlatforma Kontentowa
Platforma Kontentowa
Rafał Filipek
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
Jacek Okrojek
Wydajny frontend 2024 - nowości optymalizacyjne
Wydajny frontend 2024 - nowości optymalizacyjneWydajny frontend 2024 - nowości optymalizacyjne
Wydajny frontend 2024 - nowości optymalizacyjne
Bartłomiej Miś
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
3camp
Architektura to nie bzdura
Architektura to nie bzduraArchitektura to nie bzdura
Architektura to nie bzdura
Pawel 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 JS
Dawid 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 1
Kamil 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
WordCamp Gdynia 2016
WordCamp Gdynia 2016WordCamp Gdynia 2016
WordCamp Gdynia 2016
Piotr Niewiadomski
JSON, REST API
JSON, REST APIJSON, REST API
JSON, REST API
3camp
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
Mateusz Stępniak
Zhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP TrojmiastoZhakuj swojego Wordpressa, WordUP Trojmiasto
Zhakuj swojego Wordpressa, WordUP Trojmiasto
secman_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@2013
Mateusz Stępniak
Testowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnychTestowanie bezpieczenstwa aplikacji mobilnych
Testowanie bezpieczenstwa aplikacji mobilnych
SecuRing
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
Jacek Okrojek
Wydajny frontend 2024 - nowości optymalizacyjne
Wydajny frontend 2024 - nowości optymalizacyjneWydajny frontend 2024 - nowości optymalizacyjne
Wydajny frontend 2024 - nowości optymalizacyjne
Bartłomiej Miś
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
3camp
Architektura to nie bzdura
Architektura to nie bzduraArchitektura to nie bzdura
Architektura to nie bzdura
Pawel 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
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
"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

More from Tomasz Dziuda (13)

Wtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaWtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp Warszawa
Tomasz Dziuda
Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12
Tomasz Dziuda
Trello w praktyce
Trello w praktyceTrello w praktyce
Trello w praktyce
Tomasz Dziuda
Wtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp LublinWtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp Lublin
Tomasz Dziuda
Wtyczkowe kompendium
Wtyczkowe kompendiumWtyczkowe kompendium
Wtyczkowe kompendium
Tomasz 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ów
Tomasz 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 administrators
Tomasz 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 programistom
Tomasz 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 2015
Tomasz 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
JSztuczki
JSztuczkiJSztuczki
JSztuczki
Tomasz Dziuda
Introduction to ECMAScript 2015
Introduction to ECMAScript 2015Introduction to ECMAScript 2015
Introduction to ECMAScript 2015
Tomasz Dziuda
Wtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp WarszawaWtyczkowe kompendium - WordUp Warszawa
Wtyczkowe kompendium - WordUp Warszawa
Tomasz Dziuda
Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12Wtyczkowe Kompendium - WordUp Łódź #12
Wtyczkowe Kompendium - WordUp Łódź #12
Tomasz Dziuda
Wtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp LublinWtyczkowe Kompendium - WordUp Lublin
Wtyczkowe Kompendium - WordUp Lublin
Tomasz 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ów
Tomasz 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 administrators
Tomasz 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 programistom
Tomasz 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
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 2015
Tomasz Dziuda

REST API - teoria i praktyka - WordUp Trójmiasto