WordPress REST API - praktyczny przewodnik

REST API otwiera WordPress na świat zewnętrznych aplikacji. Możesz pobierać i wysyłać dane z dowolnej aplikacji. Podstawa headless WordPress i zaawansowanych integracji.

Krótka odpowiedź

WordPress REST API to interfejs do komunikacji z WordPress przez HTTP. Dostępny pod /wp-json/wp/v2/. Możesz pobierać posty (GET /posts), tworzyć (POST), aktualizować (PUT) i usuwać (DELETE). Wymaga autoryzacji dla operacji zapisu.

Podstawy REST API

Dostęp do API:
- URL: twojadomena.pl/wp-json/wp/v2/
- Przeglądarka: wpisz URL i zobacz JSON
- Postman/Insomnia: testowanie requestów

Główne endpointy:
- /wp/v2/posts - posty
- /wp/v2/pages - strony
- /wp/v2/media - media
- /wp/v2/users - użytkownicy
- /wp/v2/categories - kategorie
- /wp/v2/tags - tagi

Metody HTTP:
- GET - pobieranie danych
- POST - tworzenie
- PUT/PATCH - aktualizacja
- DELETE - usuwanie

Pobieranie danych (GET)

Wszystkie posty:
```
GET /wp-json/wp/v2/posts
```

Jeden post:
```
GET /wp-json/wp/v2/posts/123
```

Parametry:
- per_page=10 - liczba wyników
- page=2 - strona paginacji
- search=fraza - wyszukiwanie
- categories=5 - filtr kategorii
- orderby=date - sortowanie
- order=desc - kierunek

Przykład:
```
/wp-json/wp/v2/posts?per_page=5&categories=3&orderby=title
```

JavaScript fetch:
```javascript
fetch('https://example.com/wp-json/wp/v2/posts')
.then(res => res.json())
.then(posts => console.log(posts));
```

Autoryzacja i tworzenie danych

Metody autoryzacji:
- Application Passwords (WordPress 5.6+)
- JWT (wtyczka)
- OAuth (wtyczka)
- Cookie (dla zalogowanych)

Application Passwords:
1. Użytkownicy → Twój profil
2. Application Passwords → nowe hasło
3. Użyj w nagłówku Authorization

Tworzenie posta:
```javascript
fetch('https://example.com/wp-json/wp/v2/posts', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Basic ' + btoa('user:app_password')
},
body: JSON.stringify({
title: 'Nowy post',
content: 'Treść posta',
status: 'publish'
})
});
```

Custom Endpoints

Tworzenie własnego endpointu:
```php
add_action('rest_api_init', function() {
register_rest_route('myplugin/v1', '/data', array(
'methods' => 'GET',
'callback' => 'my_custom_endpoint',
'permission_callback' => '__return_true'
));
});

function my_custom_endpoint() {
return array('message' => 'Hello from API');
}
```

Headless WordPress:
- WordPress jako backend (CMS)
- Frontend: React, Vue, Next.js
- Pobieranie danych przez REST API
- Szybsze strony, nowoczesny stack

Popularne rozwiązania headless:
- Next.js + WordPress
- Gatsby + WordPress
- Nuxt + WordPress

Wspomniane narzędzia

Postman Insomnia Next.js Gatsby

Najczęściej zadawane pytania

Czy REST API jest włączone domyślnie?
Tak, od WordPress 4.7. Możesz je wyłączyć wtyczką lub kodem, ale nie jest to zalecane - wiele wtyczek (Gutenberg, Jetpack) go używa.
Czy REST API jest bezpieczne?
Tak, o ile używasz HTTPS i właściwej autoryzacji. Publiczne endpointy (GET posts) są bezpieczne. Operacje zapisu wymagają uwierzytelnienia.
#wordpress#rest-api#api#headless#integracja

Potrzebujesz pomocy specjalisty?

Skorzystaj z naszych usług w największych miastach Polski