Hej,
nie do konca rozumiem co oznacza "podstawowe" API, ale zakladam ze chodzi o cos takiego, zeby np pod adresem /books zostala zwrocona lista ksiazek z bazy, a pod adresem /book/8 zostaly zwrocone dane ksiazki z ID = 8 z bazy. Jedyna roznica w stosunku do "standardowej" strony jest taka, ze zamiast htmla z np tabelka z lista ksiazek masz zwrocic same dane np w formacie json czy xml.
Czyli uruchamiajac strone /books w przegladarce wyswietli ci sie cos takiego:
[ { "id": 1, "title": "Ania z Zielonego Wzgorza"}, { "id": 2, "title": "W pustyni i w puszczy" }
A wchodzac na strone /book/2 np:
{"id": 2, "title": "W pustyni i w puszczy", "author": "Henryk Sienkiewicz" }
Czyli taki skrypt dla listy ksiazek wyglada mniej wiecej tak:
- Polaczenie z baza i odpowiednie zapytanie o liste ksiazek
- Cala liste ksiazek zamieniasz na JSON funkcja json_encode($books);
- Wyswietlasz jsona, normalnie echo (bez zadnych template'ow, htmla itp)
I podobnie dla szczegolow ksiazki (zwrocenie elementu o konkretnym id) - bedzie sie roznilo tylko zapytaniem do bazy.
Z kolei druga czesc zadania, czyli frontend, bedzie polegala na tym ze stworzysz szablon htmla z odpowiednimi id elementow, do ktorych chcesz dane "wstrzyknac". Do samego zapytania do API mozesz uzyc np jquery.
Zazwyczaj przy tworzeniu API dochodzi jeszcze kwestia autoryzacji, ale to chyba nie wchodzi w zakres "podstawowego API".
Jesli chcesz to API zrobic na Symfony mozesz uzyc sobie NelmioApiBundle do dokumentacji (fajnie sie testuje API, https://github.com/nelmio/NelmioApiDocBundle) i jmsSerializera (http://jmsyst.com/bundles/JMSSerializerBundle)