Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Rivoluziona il tuo sito con le WP REST API - Andrea Cardinali

1.000 Aufrufe

Veröffentlicht am

Cosa sono le rest API? Come iniziare a utilizzarle velocemente? Come estenderne le funzionalità? Quali sono i vantaggi per design, blogger, developer? In questo talk ti fornirò tutte le risposte e ti mostrerò perché è fondamentale conoscerle
Speech tenuto al WordCamp Roma 2017

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

Rivoluziona il tuo sito con le WP REST API - Andrea Cardinali

  1. 1. RIVOLUZIONA IL TUO SITO CON LE WP REST API Andrea Cardinali T.C. Informatica
  2. 2. CHI SONO • DEVELOPER & SEO @ T.C. INFORMATICA • LAVORO CON WP DAL 2009 • CO-ORGANIZZATORE DEL WP ROMAGNA MEETUP • I <3 TALK ABOUT WORDPRESS • https://wordpress.tv/?s=andrea+cardinali @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  3. 3. I <3 TALK ABOUT WORDPRESS • INDICIZZAZIONE & CRAWL BUDGET OPTIMIZATION (seoCMS ‘16) • VAGRANT E SVILUPPO (WCMIL ‘16) • WP-CLI (WCTRN ‘17) • SEO, HTTPS e HTTP/2 (seoCMS 17) • WEB PERFOMANCE E HTTP/2 (WMF ‘17) • REALIZZARE SITI CHE CARICANO IN 1s (WCMIL ‘17) @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  4. 4. DI COSA PARLERÒ • COSA SONO LE REST API • VANTAGGI • COME FUNZIONANO • PLUGINS • DOMANDE @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  5. 5. #WCRM @andreacardinali @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  6. 6. SONDAGGIO @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  7. 7. CHI CONOSCE GIÁ LE REST API?
  8. 8. CHI UTILIZZA LE REST API?
  9. 9. CHI UTILIZZA WP 4.7 O SUPERIORE?
  10. 10. PLUGIN CHE UTILIZZANO LE REST API • https://wordpress.org/plugins/wp-front-end-editor/ • https://it.wordpress.org/plugins/woocommerce/ • https://it.wordpress.org/plugins/contact-form-7/ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  11. 11. LA STORIA IN BREVE • NASCONO NEL 2012 da RACHEL BAKER & RYAN MC CUE • INCLUSE NEL CORE DALLA v.4.4 (8 Dicembre 2015) • ATTIVE DI DEFAULT DALLA v.4.7 (6 Dicembre 2016) @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  12. 12. V2 VERSIONE ATTUALE https://developer.wordpress.org/rest-api/ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  13. 13. COSA SONO LE REST API
  14. 14. LE REST API SONO UN’INTERFACCIA DI PROGRAMMAZIONE APPLICATIVA RESTFUL HTTP JSON […] EVOLUZIONE DELLA PRECEDENTE API BASATA SU PROTOCOLLO XML-RPC @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  15. 15. …COME SE FOSSE ANTANI @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  16. 16. «Non hai veramente capito qualcosa fino a quando non sei in grado di spiegarlo a tua nonna» Albert Einstein @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  17. 17. JSON REST API @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  18. 18. JAVA SCRIPT OBJECT NOTATION @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  19. 19. JSON È UN FORMATO DI RAPPRESENTAZIONE TESTUALE DEI DATI @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  20. 20. [esempio json]
  21. 21. JSON REST API
  22. 22. Application Programming Interface @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  23. 23. UN API È UN INSIEME DI CONVENZIONI CHE PERMETTE LA COMUNICAZIONE TRA SOFTWARE @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  24. 24. UN API «NASCONDE» LA COMPLESSITÁ DEL SOFTWARE @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  25. 25. JSON REST API @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  26. 26. REpresentational State Transfer @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  27. 27. REST È UN TIPO DI ARCHITETTURA SOFTWARE @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  28. 28. REST DEFINISCE UN INSIEME DI REGOLE (PRINCIPI ARCHITETTURALI) PER LA PROGETTAZIONE DI UN SISTEMA https://it.wikipedia.org/wiki/Representational_State_Transfer @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  29. 29. REST UTILIZZA IL PROTOCOLLO HTTP(/S) @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  30. 30. CARATTERISTICHE REST • Identificazione delle risorse • Utilizzo esplicito dei metodi HTTP • Comunicazione senza stato • Risorse autodescrittive • Collegamenti tra risorse @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  31. 31. CARATTERISTICHE REST • Identificazione delle risorse • Utilizzo esplicito dei metodi HTTP • Comunicazione senza stato • Risorse autodescrittive • Collegamenti tra risorse @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  32. 32. CARATTERISTICHE REST • Identificazione delle risorse • Utilizzo esplicito dei metodi HTTP • Comunicazione senza stato • Risorse autodescrittive • Collegamenti tra risorse @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  33. 33. RISORSE
  34. 34. UNA RISORSA È UN QUALSIASI ELEMENTO OGGETTO DI ELABORAZIONE @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  35. 35. UNA RISORSA È IDENTIFICATA UNIVOCAMENTE DA UN URI @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  36. 36. UNIFORM RESOURCE IDENTIFIER @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  37. 37. Uniform RESOURCE IDENTIFIER /wp-json/wp/v2/posts/123 @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  38. 38. CARATTERISTICHE REST • Identificazione delle risorse • Utilizzo esplicito dei metodi HTTP • Risorse autodescrittive • Collegamenti tra risorse • Comunicazione senza stato @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  39. 39. METODI HTTP (HTTP VERBS) @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  40. 40. UN METODO HTTP È UN COMANDO CHE IL CLIENT INVIA AL SERVER @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  41. 41. METODO HTTP GET /contatti/ POST/wp-admin/admin-ajax.php @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  42. 42. I METODI HTTP PERMETTONO LA MANIPOLAZIONE DI UNA RISORSA @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  43. 43. I METODI HTTP CORRISPONDONO ALLE AZIONI CRUD @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  44. 44. CRUD = AZIONI FONDAMENTALI CHE POSSONO ESSERE ESEGUITE SU UNA RISORSA @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  45. 45. CREATE READ UPDATE DELETE @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  46. 46. AZIONI CRUD E METODI HTTP AZIONE METODO HTTP RISORSA CREATE POST /posts/ READ GET /posts/123 UPDATE PUT /posts/123 DELETE DELETE /posts/123 @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  47. 47. CARATTERISTICHE REST • Identificazione delle risorse • Utilizzo esplicito dei metodi HTTP • Comunicazione senza stato • Risorse autodescrittive • Collegamenti tra risorse @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  48. 48. COMUNICAZIONE SENZA STATO (STATELESS) @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  49. 49. IL SERVER NON CONSERVA LO «STATO»
  50. 50. OGNI RICHIESTA DEL CLIENT DEVE CONTENERE TUTTE LE INFO NECESSARIE AL SERVER A COMPRENDERLA […] https://stackoverflow.com/a/34131829 @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  51. 51. VANTAGGI
  52. 52. CON LE REST API WP PARLA UN LINGUAGGIO UNIVERSALE
  53. 53. WORDPRESS AS BACKEND @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  54. 54. FRAMEWORK PHP
  55. 55. FRAMEWORK JS @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  56. 56. SINGLE PAGE APP @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  57. 57. MOBILE APP @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  58. 58. SCALABILITÁ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  59. 59. AGGREGARE CONTENUTI @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  60. 60. IoT @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  61. 61. L’UNICO LIMITE È LA TUA IMMAGINAZIONE @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  62. 62. COME FUNZIONANO LE REST API
  63. 63. AUTENTICAZIONE @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  64. 64. @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  65. 65. LE REST API FUNZIONANO SOLO CON I COOKIES DI AUTENTICAZIONE https://developer.wordpress.org/rest-api/using-the-rest-api/authentication/ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  66. 66. NO COOKIES NO PARTY? @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  67. 67. HTTP authentication is presumed to be stateless: all of the information necessary to authenticate a request MUST be provided in the request, rather than be dependent on the server remembering prior requests. https://tools.ietf.org/html/rfc7235 @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  68. 68. PER SFRUTTARE LE API IN SCRITTURA (CRUD) È NECESSARIO IMPLEMENTARE UN MECCANISMO DI AUTH @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  69. 69. ROUTES @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  70. 70. UNA ROUTE È UNA PARTE DI URI @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  71. 71. ROUTE /wp-json/wp/v2/posts/123 BASE PATH ROUTE URI @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  72. 72. 1 RISORSA = 1 ROUTE * @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  73. 73. ENDPOINT @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  74. 74. ENDPOINT = ROUTE + METODO HTTP https://developer.wordpress.org/rest-api/extending-the-rest-api/routes-and-endpoints/ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  75. 75. 1 ROUTE 3 ENDPOINT GET /wp- json/wp/v2/posts/123 PUT/wp- json/wp/v2/posts/123 DELETE /wp- json/wp/v2/posts/123 @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  76. 76. AD OGNI ENDPOINT È ASSOCIATA UNA FUNZIONE DI CALLBACK https://developer.wordpress.org/rest-api/extending-the-rest-api/routes-and-endpoints/ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  77. 77. ROTTE PREDEFINITE Resource Base Route Posts /wp/v2/posts Post Revisions /wp/v2/revisions Categories /wp/v2/categories Tags /wp/v2/tags Pages /wp/v2/pages Comments /wp/v2/comments Taxonomies /wp/v2/taxonomies Media /wp/v2/media Users /wp/v2/users Post Types /wp/v2/types Post Statuses /wp/v2/statuses Settings /wp/v2/settings https://developer.wordpress.org/rest-api/reference/
  78. 78. REST API & TIPI DI POST PERSONALIZZATI @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  79. 79. DISATTIVATE DI DEFAULT PER I CUSTOM POST TYPE @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  80. 80. ATTIVARE LE REST API PER I CPT $args = array( 'public' => true, 'show_in_rest' => true, 'label' => 'Books' ); register_post_type( 'book', $args ); @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  81. 81. CAMPI PERSONALIZZATI
  82. 82. I CAMPI PERSONALIZZATI NON SONO VISIBILI DI DEFAULT @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  83. 83. È POSSIBILE MOSTRARE I CAMPI PERSONALIZZATI NELLA RISPOSTA UTILIZZANDO register_meta() https://developer.wordpress.org/reference/functions/register_meta/ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  84. 84. È POSSIBILE AGGIUNGERE REST FIELDS PERSONALIZZATI CON register_rest_field() https://developer.wordpress.org/reference/functions/register_rest_field/ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  85. 85. CMB2 SUPPORTA LE REST API @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  86. 86. CMB2 SUPPORTA LE REST API function yourprefix_register_demo_metabox() { $cmb = new_cmb2_box( array( 'id' => 'cmb2_info_metabox', 'title' => 'Information', 'object_types' => array( 'post' ), 'show_in_rest' => WP_REST_Server::READABLE ) ); } add_action( 'cmb2_init', 'yourprefix_register_demo_metabox' ); https://github.com/CMB2/CMB2/wiki/REST-API @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  87. 87. ACF SUPPORTA LE REST API (TRAMITE PLUGIN) https://it.wordpress.org/plugins/acf-to-rest-api/ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  88. 88. FAQ
  89. 89. COME VERIFICARE SE LE REST API SONO ATTIVE? @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  90. 90. VERSIONE WP > 4.7 @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  91. 91. example.com/wp-json/ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  92. 92. <link rel='https://api.w.org/' href='https://2017.rome.wordcam p.org/wp-json/' /> @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  93. 93. È INDIFFERENTE UTILIZZARE LE REST API O admin-ajax? @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  94. 94. LE REST API NON SCATENANO admin_init A DIFFERENZA DI admin-ajax.php @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  95. 95. LE REST API SONO PIÙ PERFORMANTI (BENCHMARK) @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  96. 96. CODICE SCRITTO MEGLIO @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  97. 97. POSSO DISATTIVARE LE WP REST API? @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  98. 98. PUOI PROTEGGERE LE ROUTES ATTRAVERSO UN MECCANISMO DI AUTENTICAZIONE @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  99. 99. WP NON PREVEDE UNA ROUTE CHE FA XYZ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  100. 100. LE REST API SONO PERSONALIZZABILI ED ESTENDIBILI @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  101. 101. SE NON ESISTE L’ENDPOINT PUOI SEMPRE CREARLO @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  102. 102. AGGIUNGERE UN ENDPOINT add_action( 'rest_api_init', function () { register_rest_route( 'myplugin/v1', '/author/(?P<id>d+)', array( 'methods' => 'GET', 'callback' => 'my_awesome_func', ) ); } ); https://developer.wordpress.org/rest-api/extending-the-rest-api/adding-custom-endpoints/ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  103. 103. POSSO UTILIZZARE LE API INTERNAMENTE? @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  104. 104. RICHIAMARE INTERNAMENTE $request = new WP_REST_Request( 'GET', '/wp/v2/posts' ); // Set one or more request query parameters $request->set_param( 'per_page', 20 ); $response = rest_do_request( $request ); @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  105. 105. RICAPITOLANDO • Le REST API permettono a un qualsiasi client che «parla» http e json di interagire con WordPress • Le REST API richiedono un meccanismo di autenticazione • È possibile estendere la risposta delle api • È possibile creare nuovi endpoint • Ogni volta che provi disattivare le REST API muoiono delle fatine @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  106. 106. DEV TOOLS
  107. 107. DEV TOOLS CLIENT HTTP PER TESTARE LE API https://www.getpostman.com/ BASIC AUTH (SOLO PER I TEST) https://github.com/WP-API/Basic-Auth Network inspector (Chrome e Firefox) LOGGER PER API https://it.wordpress.org/plugins/wp-rest-api- log/ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  108. 108. PLUGINS
  109. 109. PLUGIN UTILI DISABILITARE LE API PER GLI UTENTI NON LOGGATI https://it.wordpress.org/plugins/disable-json-api/ ACF TO REST API https://it.wordpress.org/plugins/acf-to-rest-api/ REST MANAGER - DISABILITARE PLUGIN PER ROUTE https://it.wordpress.org/plugins/rest-manager/ WP-CLI RESTFUL https://github.com/wp-cli/restful @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  110. 110. PLUGIN PER AUTENTICAZIONE COOKIELESS OAUTH 1 https://wordpress.org/plugins/rest-api- oauth1/ JWT AUTH (JSON WEB TOKEN AUTH) https://wordpress.org/plugins/jwt- authentication-for-wp-rest-api/ BASIC AUTH (SOLO PER I TEST) https://github.com/WP-API/Basic-Auth @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  111. 111. APPROFONDIMENTI • https://developer.wordpress.org/rest-api/ • https://skillsandmore.org/rest-e-restful-api- introduzione/ • https://skillsandmore.org/rest-api- wordpress-poteri/ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  112. 112. WORDPRESS MEETUP ROMAGNA QUANDO: ogni 1°Martedì del mese (9 Gennaio 2018) DOVE: Dinamo Coworking Space Cesena PERCHÉ: Per parlare di WordPress, conoscere bella gente e condividere le proprie esperienze wpromagna.com @romagnawp @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017
  113. 113. DOMANDE?
  114. 114. GRAZIE! • Twitter:@andreacardinali • Slideshare: http://www.slideshare.net/andreacardinali • Wordcamp TV: https://wordpress.tv/?s=andrea+cardinali • Website: https://www.andreacardinali.it/ • Website: https://www.tcinformatica.net/ @andreacardinali - #WCRM - WordCamp Roma 15/16 Dicembre 2017

×