@harrasteblogi JUURI NYT
--:--

Tilaa uutiskirje

Saat tuoreimmat 10 uusinta artikkelia kerran viikossa sähköpostiisi.

Tilaa uutiskirje

WordPressin custom endpointit ilman raskaita lisäosiaCustom endpointit ovat tehokas tapa rakentaa API-rajapintoja, webhook-vastaanottimia, AJAX-korvaajia ja integraatioita WordPressiin ilman raskaita plugin-ratkaisuja. Moni kehittäjä turvautuu tarpeettoman suuriin lisäosiin yksinkertaisten endpointtien rakentamiseen, vaikka WordPressin core tarjoaa lähes kaiken tarvittavan valmiiksi.

Tiivistelmä
Mitä custom endpoint tarkoittaa

Endpoint on URL, joka palauttaa:...

Paras tapa: WordPress REST API

Moderni ratkaisu on lähes aina:...

1. Yksinkertainen endpoint

add_action('rest_api_init', function () { register_rest_route( 'myplugin/v1', '/status', [ 'methods' => 'GET', 'callback' => 'my_status_endpoint', ] ); }); 2. Callback-funktio function my_status_endpoint() { return [ 'status'...

2. Callback-funktio

function my_status_endpoint() { return [ 'status' => 'ok' ]; } Response:...

3. HTTP-metodit

Voit määrittää:...

4. Request-parametrien käsittely

function endpoint($request) { $email = $request->get_param('email'); } Saatavilla:...

5. Permission callback

Tärkeä turvallisuudessa....

6. Public endpointit

Jos endpoint on julkinen:...

8. Virheiden palautus

return new WP_Error( 'invalid_request', 'Missing parameter', ['status' => 400] ); 9. Route-versionointi Hyvä käytäntö:...

9. Route-versionointi

Hyvä käytäntö:...

10. Endpoint ilman REST APIa

Mahdollinen myös rewrite-ratkaisulla....

11. Query var

add_filter('query_vars', function($vars) { $vars[] = 'custom_api'; return $vars; }); 12. Template redirect endpoint add_action('template_redirect', function() { if (get_query_var('custom_api')) { wp_send_json([ 'success' => true ]); }...

12. Template redirect endpoint

add_action('template_redirect', function() { if (get_query_var('custom_api')) { wp_send_json([ 'success' => true ]); } }); Tämä on kevyt mutta REST API on yleensä parempi....

15. Nonce-suojaus

Frontend-requesteissa:...

16. Rate limiting

Suojaa endpointit abusea vastaan....

17. Cachettavat endpointit

GET-endpointit voidaan cachettaa:...

18. Background processing

Älä tee raskaita operaatioita endpointissa....

19. Webhook endpointit

REST API sopii hyvin:...

20. Performance optimointi

Optimoi endpointit:...

22. Yleisimmät virheet

Moderni WordPress API stack:...

23. Paras moderni endpoint-arkkitehtuuri

Moderni WordPress API stack:...

Yhteenveto

Custom endpointit voidaan rakentaa WordPressiin erittäin tehokkaasti ilman raskaita lisäosia käyttämällä REST APIa, kevyitä controller-rakenteita ja modernia request-käsittelyä....

Kevyt endpoint-arkkitehtuuri parantaa:

  • suorituskykyä
  • turvallisuutta
  • ylläpidettävyyttä
  • skaalautuvuutta

Samalla vältetään:

  • admin-ajax.php pullonkaulat
  • plugin-bloat
  • ylimääräinen memory usage
  • monimutkainen dependency stack

Mitä custom endpoint tarkoittaa

Endpoint on URL, joka palauttaa:

  • JSON-dataa
  • webhook-vastauksen
  • tiedoston
  • autentikointivastauksen
  • custom HTML:n

Esimerkki:

example.com/wp-json/myplugin/v1/orders

Tai:

example.com/api/export

Paras tapa: WordPress REST API

Moderni ratkaisu on lähes aina:

register_rest_route()

Hyödyt:

  • kevyt
  • core-yhteensopiva
  • turvallinen
  • helposti versionoitava
  • JSON-native

1. Yksinkertainen endpoint

add_action('rest_api_init', function () {

    register_rest_route(
        'myplugin/v1',
        '/status',
        [
            'methods'  => 'GET',
            'callback' => 'my_status_endpoint',
        ]
    );
});

2. Callback-funktio

function my_status_endpoint() {

    return [
        'status' => 'ok'
    ];
}

Response:

{
  "status": "ok"
}

3. HTTP-metodit

Voit määrittää:

GET
POST
PUT
PATCH
DELETE

Esimerkki:

'methods' => 'POST'

4. Request-parametrien käsittely

function endpoint($request) {

    $email = $request->get_param('email');
}

Saatavilla:

  • query parametrit
  • body data
  • headerit

5. Permission callback

Tärkeä turvallisuudessa.

'permission_callback' => function () {

    return current_user_can('manage_options');
}

Ilman tätä endpoint voi olla avoin kaikille.

6. Public endpointit

Jos endpoint on julkinen:

'permission_callback' => '__return_true'

Mutta validoi data aina.

7. JSON response oikein

Käytä:

return rest_ensure_response($data);

Tämä varmistaa oikean REST-response-rakenteen.

8. Virheiden palautus

return new WP_Error(
    'invalid_request',
    'Missing parameter',
    ['status' => 400]
);

9. Route-versionointi

Hyvä käytäntö:

myplugin/v1
myplugin/v2

Älä riko vanhoja endpointteja.

10. Endpoint ilman REST APIa

Mahdollinen myös rewrite-ratkaisulla.

add_rewrite_rule(
    '^api/test/?',
    'index.php?custom_api=1',
    'top'
);

11. Query var

add_filter('query_vars', function($vars) {

    $vars[] = 'custom_api';

    return $vars;
});

12. Template redirect endpoint

add_action('template_redirect', function() {

    if (get_query_var('custom_api')) {

        wp_send_json([
            'success' => true
        ]);
    }
});

Tämä on kevyt mutta REST API on yleensä parempi.

13. Miksi admin-ajax kannattaa välttää

admin-ajax.php:

  • lataa admin-bootstrapin
  • raskaampi
  • hitaampi korkeassa liikenteessä

REST API:

  • kevyempi
  • modernimpi
  • paremmin cachettava

14. Authentication vaihtoehdot

Voit käyttää:

  • cookie auth
  • nonce
  • JWT
  • Application Passwords
  • API keyt

15. Nonce-suojaus

Frontend-requesteissa:

wp_create_nonce('wp_rest');

JS:

headers: {
   'X-WP-Nonce': nonce
}

16. Rate limiting

Suojaa endpointit abusea vastaan.

Esimerkki:

$key = 'api_' . $_SERVER['REMOTE_ADDR'];

Tallennus:

  • transient
  • Redis
  • custom table

17. Cachettavat endpointit

GET-endpointit voidaan cachettaa:

CDN
↓
Edge cache
↓
REST API

Tämä vähentää serverikuormaa merkittävästi.

18. Background processing

Älä tee raskaita operaatioita endpointissa.

Huono:

API request
↓
Massive import

Parempi:

API request
↓
Queue job
↓
Background worker

19. Webhook endpointit

REST API sopii hyvin:

  • Stripe webhookeihin
  • GitHub webhookeihin
  • CRM-integratioihin

Tärkeää:

  • signature validation
  • logging
  • retry handling

20. Performance optimointi

Optimoi endpointit:

  • vältä raskaita WP_Queryjä
  • käytä object cachea
  • minimoi bootstrap
  • cachetaa GET-responseja
  • käytä batch processingia

21. Dependency injection endpointteihin

Hyvä arkkitehtuuri:

Route
↓
Controller
↓
Service
↓
Repository

Ei kaikkea callback-funktioon.

22. Yleisimmät virheet

  • admin-ajax käyttö kaikkeen
  • ei permission callbackia
  • raskaat queryt endpointissa
  • ei rate limitingiä
  • duplicate endpoint-logiikka
  • liian isot response payloadit
  • ei validointia

23. Paras moderni endpoint-arkkitehtuuri

Moderni WordPress API stack:

REST Route
↓
Middleware
↓
Controller
↓
Service Layer
↓
JSON Response

Yhteenveto

Custom endpointit voidaan rakentaa WordPressiin erittäin tehokkaasti ilman raskaita lisäosia käyttämällä REST APIa, kevyitä controller-rakenteita ja modernia request-käsittelyä.

Kun endpointit suunnitellaan suorituskyky ja turvallisuus edellä, WordPress pystyy toimimaan vakaana API-alustana myös vaativissa integraatioissa ja korkeassa liikenteessä.

🍪