REST-owe żądania w Java Spring z wykorzystaniem RestTemplate

Wraz z wielkim wzrostem dwóch podejść RESTful Web Services oraz mikroserwisów warto jest mieć łatwy sposób na stworzenie odpowiedniej klasy wspomagającej komunikacje miedzy serwisami. W tym wpisie pokażę, jak zrobić to w javowym Springu z wykorzystaniem klasy RestTemplate.

Na początek

  • bardzo podstawowa wiedza o Javie
  • 5 minut

RestTemplate

RestTemplate (implementujace interface RestOperations) to wedlug dokumentacji Springa centralna klasa dla synchronicznego dostępu HTTP. Trochę bardziej ludzkim językiem – w oparciu o tę klasę można łatwo z poziomu kodu Javy wykonywać żądania HTTP. Stwórzmy więc zręby pod własny klient Rest HTTP 🙂
Czytaj dalej REST-owe żądania w Java Spring z wykorzystaniem RestTemplate

Progressive enhancement – tworzenie stron dla kazdego odbiorcy

Kazdy z nas lubi tworzyc cos bardzo nowoczesnego i przyjaznego programiscie. Pewnie nikt z nas (procz 3 osob ciagle odwiedzajacych te strone za pomoca IE 6) nie znosi tworzyc czegos dla starych i wrednych srodowisk.

Niestety, czasem nie wszystko zalezy od nas. Musimy pojsc na kompromisy i zapewnic takze starym, zgrzybialym srodowiskom podstawowe wsparcie. Istnieje kilka sposob na tworzenie takich stron. W ponizszej prezentacji glownie chcialbym sie skupic nad progressive enhancement (progresywne ulepszanie) oraz wspomniec o kilku innych, np. graceful degradation.

Czytaj dalej Progressive enhancement – tworzenie stron dla kazdego odbiorcy

Zend/PHP: Dlaczego stosowanie view modeli jest dobre

Chcialbym w tym wpisie pokazac, co zrobic, aby kod kontrolerow i plikow widoku byl przyjemniejszy w czytaniu i prostszy w utrzymaniu. Dodatkowo, za darmo uda sie nam zyskac duzo prostszy do testowania kod! Na co czekac? Zaczynajmy!

Na poczatek warto wiedziec:

  • Podstawy PHP,
  • Swiadomosc istnienia MVC,
  • Posiadanie zdrowego rozsadku i instynktu samozachowawczego.

Czytaj dalej Zend/PHP: Dlaczego stosowanie view modeli jest dobre

Ksiazka: Wzorzec MVC w PHP dla profesjonalistów

Wzorzec MVC w PHP dla profesjonalistówWzorzec MVC w PHP dla profesjonalistów

Wzorzec MVC na dobre zagoscil we wszelakich projektach informatycznych. Pozwala na rozsadny podzial na warstwy i oddzielenie logiki od danych, a takze kodu robiacego cokolwiek „na serwerze” od kodu wyswietlajacego np. strone internetowa.

Chris Pitt bardzo starannie opisuje kolejno, co trzeba napisac (i w tracie ksiazki sam pisze pokazujac czytelnikowi wszystkie kroki), aby stworzyc wlasny framework PHP implementujacy wzorzec MVC.

Czytaj dalej Ksiazka: Wzorzec MVC w PHP dla profesjonalistów

Require.js – AMD w praktyce

Już kilkukrotnie poruszałem temat tworzenia modułów (czasem nawet „klas”) w JavaScripcie. Tym razem coś nowego – asynchroniczne definiowanie modułów. W skrócie AMD (ang. asynchronous module definition). Coraz więcej znanych frameworków i bibliotek wykorzystuje właśnie to podejście (choćby Dojo i jQuery).

W tym wpisie spróbuję pokazać dlaczego powstało takie rozwiązanie oraz przedstawić kilka prostych zastosowań.

Na początek warto:

REST – ciekawszy sposób na komunikację client-server

REST (ang. Representational State Transfer) jest wzorcem narzucającym dobre praktyki tworzenia architektury aplikacji rozproszonych. RESTful Webservices (inaczej RESTful web API) jest usługą sieciową zaimplementowaną na bazie protokołu HTTP i głównych zasad wzorca REST. W tym wpisie postaram się pokazać (bardzo) podstawowe założenia.

Ważnym założeniem REST jest istnienie zasobów (ang. resources) jako źródeł danych a także żądana akcja. Ale może po kolei…

Zapomniane metody HTTP w Ajaksie

Komunikując się z serwerem najczęściej korzysta się z dwóch metod:

  • GET
  • POST

Co więcej, często wykorzystuje się je nieprzemyślany sposób (aby nie powiedzieć losowy). Nigdy nie wiadomo, czy żądanie doda, usunie, nadpisze czy tylko pobierze dane z serwera. A szkoda, bo przecież o ile ładniej jest patrzeć w konsole Firebuga i po samym rodzaju metody odczytywać jakiego rodzaju operacja została wywołana.

Tytułowe „zapomniane” metody to (jest ich więcej, ale nie są potrzebne dla tego wpisu):

Uruchamianie funkcji w odpowiednim kontekście

Ostatnio kolega (zapraszam na jego blog) zapytał mnie jak uruchomić funkcję obsługi zdarzenia (ang. event handler) w odpowiednim kontekście – słowem: jak sterować kontekstem funkcji w JavaScript:

[javascript]domNode.addEventListener("click", function() {
console.log(this === window, this === domNode);
} , false);[/javascript]

Idąc tropem opisanym we wpisie o operatorze `this’ zaproponowałem wykorzystanie metody `apply’ bądź `call’:

[javascript]function handler()
{
console.log(this === window, this); // this === Number (obiekt liczby = 1)
}
domNode.addEventListener("click", function() { handler.apply(1); } , false);[/javascript]

Działa to tak jak oczekiwano – starczy podać jako parametr metody `apply’ odpowiedni kontekst. Nie musi to wcale być jakiś skomplikowany obiekt. Powyżej przekazałem po prostu wartość `1′, która została zrzutowana do obiektu Number. Czytaj dalej Uruchamianie funkcji w odpowiednim kontekście

Książka: „Programowanie obiektowe w PHP 5”

Okładka Programowanie obiektowe w PHP 5

PHP jest bardzo przyjaznym i popularnym językiem. Jego popularność bierze się w głównej mierze z prostoty. Właśnie – prostoty, a nie prostactwa.

PHP, szczególnie w wersji 5, jest naprawdę pełnoprawnym językiem programowania, pozwalającym na tworzenie dużych i skomplikowanych projektów. Książka Hasina Haydera próbuje pokazać możliwości piątej odsłony języka w zakresie OOP (programowania zorientowanego obiektowo).

W książce spodobał mi się układ. Czytając miałem wrażenie, że tworzy ona całość. Tematy jakby wynikały jeden z drugiego. Pozycja nie jest zbyt obszerna (treści < 250 stron) i czyta się ją szybko i sprawnie. Tekst okraszony został sporą ilością kodu prezentującego aktuanie omawiane aspekty, co także przemawia na korzyść książki.

Ucieszyło mnie także, że jeden rozdział został poświęcony testom jednostkowym, co uważam za bardzo poprawne w nauczaniu „nowego pokolenia” programistów. Czytaj dalej Książka: „Programowanie obiektowe w PHP 5”

[JavaScript] Pseudo MVC na jQuery

Kod HTML coraz częściej naszpikowany jest wieloma artybutami pomocnymi przy wdrażaniu kodu JS do projektu. Czy nie da się z tym czegoś zrobić? Dodatkowo bardzo często kod JS jest „brudny” przez mieszanie wartw: danych, prezentacji i logiki. W małym projekcie to znośne, ale w dużych zaczyna być nie do ogarnięcia. Spróbuję pokazać co można zmienić w tej kwestii.

Strona „spaghetti”

Dawniej stosowało się określenia „spaghetti HTML”, mając na myśli kod HTML naszpikowany atrybutami nadającym stronie wygląd. Aby temu zapobiegać zaczęto stosować CSS. W przypadku JS także można zostawić kod HTML czystym od wszelkim artybutów „zdarzeniowych” (`onclick’, `onmouseover’ itp.). Najpierw kod, gdzie tego nie zrobię i atrybuty będą zaszyte w kodzie HTML: Czytaj dalej [JavaScript] Pseudo MVC na jQuery