{"id":226029,"date":"2022-08-22T10:46:00","date_gmt":"2022-08-22T07:46:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=226029"},"modified":"2022-11-08T01:28:33","modified_gmt":"2022-11-07T22:28:33","slug":"criando-um-sistema-crud-no-wordpress-wpdatatables-tables-plugin","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/pt-pt\/criando-um-sistema-crud-no-wordpress-wpdatatables-tables-plugin\/","title":{"rendered":"Criando um sistema CRUD no WordPress &#8211; wpDataTables Tables Plugin"},"content":{"rendered":"\n<p>Este artigo sobre como criar um sistema CRUD no WordPress foi publicado em 2014. No entanto, percebemos que esse t\u00f3pico se tornou ainda mais atual, ent\u00e3o decidimos dar uma nova apar\u00eancia.<\/p>\n<p>O que \u00e9 um sistema CRUD, como integrar um sistema CRUD para MySQL em seu site WordPress, quais s\u00e3o os pr\u00f3s e contras de usar diferentes abordagens?<\/p>\n<h2>O que \u00e9 um sistema CRUD?<\/h2>\n<p>A abreviatura <strong>CRUD<\/strong> vem de <strong>C<\/strong> reate, <strong>R<\/strong> ead, <strong>U<\/strong> pdate, <strong>D<\/strong> elete. O que, em outras palavras, significa um sistema de gerenciamento de dados. Na web, provavelmente significaria um software que gerencia entradas em seu banco de dados. Normalmente, refere-se ao MySQL, PostgreSQL, MS SQL ou outros mecanismos de banco de dados.<\/p>\n<p>Um \u00f3timo e, talvez, o exemplo mais popular de um sistema CRUD \u00e9 <a href=\"https:\/\/www.phpmyadmin.net\/home_page\/index.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">o phpMyAdmin<\/a>. PHPMyAdmin \u00e9 uma ferramenta que \u00e9 usada por quase todos os desenvolvedores web para gerenciar dados MySQL online. Tornou-se t\u00e3o amplamente difundido que atualmente pode ser chamado de ferramenta padr\u00e3o para gerenciar bancos de dados MySQL. Hoje em dia est\u00e1 pr\u00e9-instalado em quase qualquer ferramenta CPanel em provedores de hospedagem.<\/p>\n<p>Existem milhares de casos de uso padr\u00e3o para sistemas CRUD. Por exemplo \u2013 quase qualquer cat\u00e1logo, registro de entrada, informa\u00e7\u00f5es estat\u00edsticas. Basicamente, qualquer coisa relacionada ao armazenamento de informa\u00e7\u00f5es exigiria a adi\u00e7\u00e3o, modifica\u00e7\u00e3o e remo\u00e7\u00e3o de bits de informa\u00e7\u00e3o. \u00c9 quando os sistemas CRUD entram em a\u00e7\u00e3o.<\/p>\n<h2>Por que voc\u00ea precisaria de um sistema CRUD no WordPress?<\/h2>\n<p>O pr\u00f3prio WordPress \u00e9 um poderoso CMS (Content Management System), que tamb\u00e9m \u00e9 um caso especial do sistema CRUD. Como voc\u00ea sabe, os usu\u00e1rios do site WordPress podem adicionar posts e p\u00e1ginas, edit\u00e1-los ou exclu\u00ed-los. Mas \u00e0s vezes voc\u00ea encontra uma situa\u00e7\u00e3o em que precisa gerenciar alguns dados do banco de dados diretamente do front-end do WordPress, que geralmente n\u00e3o \u00e9 postado ou relacionado \u00e0 p\u00e1gina e n\u00e3o se encaixa bem nas taxonomias do WordPress. Entre outras, pode ser uma dessas situa\u00e7\u00f5es em que voc\u00ea precisaria de um sistema CRUD independente no WordPress:<\/p>\n<ul>\n<li>Voc\u00ea gostaria de ter um rastreador de bugs, log de entrada ou alguma outra ferramenta de entrada de dados em seu site WordPress;<\/li>\n<li>Ou, por exemplo, voc\u00ea deseja permitir que alguns dos usu\u00e1rios editem alguns dados relacionados a neg\u00f3cios do front-end do seu site sem fornecer acesso ao painel de administra\u00e7\u00e3o do site WordPress, ou talvez at\u00e9 mesmo sem divulgar o fato de que o site \u00e9 executado no WordPress;<\/li>\n<li>Outro exemplo \u00e9 um requisito para permitir que alguns usu\u00e1rios editem uma tabela de banco de dados. Por exemplo, modifique um pedido feito, edite alguns dados pessoais, etc.<\/li>\n<\/ul>\n<p>E pedidos semelhantes.<\/p>\n<h2>Como integrar um sistema CRUD em um site WordPress?<\/h2>\n<h3>A solu\u00e7\u00e3o mais f\u00e1cil \u2013 tente encontrar um plugin adequado<\/h3>\n<p><strong>Primeiro \u2013 certifique-se de que voc\u00ea realmente precisa de um.<\/strong> Muitas das tarefas n\u00e3o s\u00e3o exclusivas e voc\u00ea provavelmente pode encontrar um plugin que atenda \u00e0s suas necessidades. Por exemplo, se voc\u00ea precisar de um rastreador de bugs, como mencionado acima, voc\u00ea pode verificar e baixar <a href=\"https:\/\/wordpress.org\/plugins\/really-simple-issue-tracker\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">este<\/a> ou <a href=\"https:\/\/wordpress.org\/plugins\/bugerator\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">este<\/a>.<\/p>\n<p>E se voc\u00ea precisar de algo mais gen\u00e9rico, como editar diferentes tabelas MySQL do front-end do WordPress, experimente nosso plugin <a href=\"https:\/\/wpdatatables.com\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wpDataTables<\/a> que \u00e9 basicamente um sistema CRUD no WordPress. Voc\u00ea pode ver a lista de recursos e exemplos de como funciona <a href=\"https:\/\/wpdatatables.com\/documentation\/general\/features-overview\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aqui<\/a>. Ou experimente uma vers\u00e3o Lite gratuita no <a href=\"https:\/\/wordpress.org\/plugins\/wpdatatables\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">reposit\u00f3rio de plugins do WordPress<\/a>.<\/p>\n<p>Vale a pena notar que wpDataTables n\u00e3o imp\u00f5e nenhuma limita\u00e7\u00e3o na estrutura de dados, quantidade de colunas ou linhas, suporta muitos <a href=\"https:\/\/wpdatatables.com\/documentation\/column-features\/currency-percentage-and-other-columns\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">tipos de dados<\/a> e <a href=\"https:\/\/wpdatatables.com\/documentation\/front-end-editing\/editor-input-types\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">diferentes tipos de entrada do editor<\/a>. Por exemplo, alguns tipos espec\u00edficos como anexos ou <a href=\"https:\/\/wpdatatables.com\/documentation\/column-features\/datetime-columns\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">DateTime<\/a>. Al\u00e9m disso, permite editar dados atrav\u00e9s de um <a href=\"https:\/\/wpdatatables.com\/documentation\/front-end-editing\/creating-editable-tables\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">editor de formul\u00e1rios pop<\/a> -up, com um <a href=\"https:\/\/wpdatatables.com\/documentation\/front-end-editing\/inline-editing\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">editor embutido<\/a> ou at\u00e9 mesmo com um editor de <a href=\"https:\/\/wpdatatables.com\/documentation\/front-end-editing\/excel-like-editor\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">planilhas do tipo Excel<\/a>.<\/p>\n<p>Se voc\u00ea ainda sente que precisa construir um sistema CRUD personalizado no WordPress, voc\u00ea deve se preparar para alguma codifica\u00e7\u00e3o s\u00e9ria para faz\u00ea-lo.<\/p>\n<h3>Iniciar um novo plug-in do WordPress<\/h3>\n<p>Se voc\u00ea acha que nenhum plugin atende \u00e0s suas necessidades, crie o seu pr\u00f3prio! Pode n\u00e3o ser t\u00e3o assustador quanto parece \u00e0 primeira vista. Comece lendo <a href=\"http:\/\/code.tutsplus.com\/tutorials\/create-a-custom-wordpress-plugin-from-scratch--net-2668\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">este bom tutorial<\/a> sobre como criar um plugin WordPress do zero. E tamb\u00e9m, claro, <a href=\"https:\/\/codex.wordpress.org\/Writing_a_Plugin\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">este<\/a> no WordPress Codex.<\/p>\n<p>O primeiro passo inicial ao criar qualquer plugin \u2013 incluindo um sistema CRUD em um plugin WordPress \u2013 \u00e9 estruturar os arquivos corretamente.<br \/>\nA abordagem usual \u00e9 colocar o arquivo de ponto CRUD de entrada principal no diret\u00f3rio raiz do plug-in e preparar v\u00e1rias subpastas:<\/p>\n<ul>\n<li><strong>Ativos<\/strong> \u2013 todos os javascripts, folhas de estilo, fontes, imagens e outros ativos est\u00e1ticos que ser\u00e3o necess\u00e1rios para o seu sistema CRUD;<\/li>\n<li><strong>Source<\/strong> \u2013 pasta para as classes PHP &#8220;core&quot; que ir\u00e3o realizar todas as funcionalidades CRUD no back-end;<\/li>\n<li><strong>Lib<\/strong> \u2013 pasta para quaisquer componentes de terceiros que voc\u00ea queira usar em seu sistema CRUD;<\/li>\n<li><strong>Templates<\/strong> \u2013 pasta para templates HTML que ser\u00e3o a interface do usu\u00e1rio para o seu sistema CRUD.<\/li>\n<\/ul>\n<p>Pode haver mais (controladores, manipuladores de shortcode e outros) \u2013 mas isso \u00e9 o m\u00ednimo para come\u00e7ar.<\/p>\n<h3>Criar editor de back-end (classes PHP)<\/h3>\n<p>Em primeiro lugar, voc\u00ea precisaria da parte de back-end: um script PHP que realmente faria os trabalhos CRUD. Para isso, voc\u00ea precisa conect\u00e1-lo ao WordPress DB (objeto global $ wpdb). Voc\u00ea pode ler um bom tutorial <a href=\"http:\/\/wp.smashingmagazine.com\/2011\/09\/21\/interacting-with-the-wordpress-database\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aqui<\/a> sobre como usar o banco de dados WordPress e o objeto $wpdb em seus plugins.<\/p>\n<p>Se voc\u00ea usar um banco de dados externo, voc\u00ea precisaria, por exemplo, usar uma <a href=\"https:\/\/php.net\/pdo\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">conex\u00e3o PDO<\/a> separada, ou apenas fun\u00e7\u00f5es PHP <a href=\"http:\/\/www.php.net\/manual\/en\/book.mysqli.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">MySQLi<\/a> embutidas (se seu mecanismo de banco de dados for MySQL).<\/p>\n<p>Sua tarefa nesta etapa \u00e9 preparar um conjunto de classes e m\u00e9todos que aceitar\u00e3o dados do front-end de alguma forma esperada, valid\u00e1-los e <a href=\"https:\/\/codex.wordpress.org\/Validating_Sanitizing_and_Escaping_User_Data\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">higieniz\u00e1-los<\/a> (limpar todas as entradas \u00e9 uma medida de seguran\u00e7a muito importante para todos os sistemas CRUD) e executar as a\u00e7\u00f5es <strong>INSERT<\/strong>, <strong>UPDATE<\/strong> e <strong>DELETE em seu banco de dados.<\/strong><\/p>\n<p>Conforme descrito na etapa anterior, esses arquivos &#8220;core&#8221; pertenceriam \u00e0 pasta &#8220;source&#8221; do seu novo plugin CRUD WordPress.<\/p>\n<h3>Criar uma interface front-end (HTML, JS, PHP)<\/h3>\n<p>Quando as classes e m\u00e9todos de gerenciamento de banco de dados estiverem preparados, seu plugin precisar\u00e1 de uma interface front-end para o usu\u00e1rio com seu novo sistema CRUD no WordPress. A melhor solu\u00e7\u00e3o seria preparar um conjunto de modelos em seus novos arquivos de plug-in e envi\u00e1-lo onde voc\u00ea precisar com um c\u00f3digo de acesso.<\/p>\n<p>Faz sentido manter sempre os templates HTML separados do c\u00f3digo (abordagem MVC), e preparar arquivos de template separados logicamente, por exemplo: &#8220;edit.tpl.php&#8221;, &#8220;delete.tpl.php&#8221;, &#8220;list.tpl.php &#8220;, etc. \u2013 um modelo para cada p\u00e1gina ou a\u00e7\u00e3o CRUD.<\/p>\n<p><a href=\"https:\/\/codex.wordpress.org\/Shortcode_API\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Aqui<\/a> voc\u00ea pode ler um \u00f3timo artigo de codex sobre a API Shortcode do WordPress.<\/p>\n<h3>Conecte front-end com back-end com chamadas AJAX (JS)<\/h3>\n<p>Claro, voc\u00ea pode fazer isso &#8220;estilo old-school&#8221;, com envios de formul\u00e1rios simples e recarregamento de p\u00e1gina. No entanto, hoje em dia n\u00e3o \u00e9 mais uma abordagem comum. Usar AJAX \u00e9 uma abordagem padr\u00e3o, seja por meio de jQuery ou outras bibliotecas como Angular. Portanto, nossa recomenda\u00e7\u00e3o \u00e9 levar algum tempo e analisar o uso do AJAX em seus plugins do WordPress, <a href=\"https:\/\/codex.wordpress.org\/AJAX_in_Plugins\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">aqui<\/a> est\u00e1 um \u00f3timo artigo do Codex sobre como usar o AJAX em seus plugins &#8211; tanto no lado administrativo quanto no front-end.<\/p>\n<p>Voc\u00ea pode colocar o c\u00f3digo JS na pasta &#8220;assets&#8221; que voc\u00ea preparou na primeira etapa.<\/p>\n<h3>Testar, refinar e depurar<\/h3>\n<p>Quando a parte de implementa\u00e7\u00e3o estiver conclu\u00edda &#8211; reserve um tempo e teste seu novo sistema CRUD no WordPress. Voc\u00ea n\u00e3o pode identificar todos os bugs desde o in\u00edcio, mas repetir a\u00e7\u00f5es de rotina CRUD v\u00e1rias vezes com exemplos diferentes (casos de &quot;borda&quot; prefer\u00edveis &#8211; por exemplo, quantidades muito grandes de dados, clicar v\u00e1rias vezes no mesmo bot\u00e3o etc.) para pegar a maioria dos bugs \u2013 e isso sempre acontece quando voc\u00ea implementa algo novo.<\/p>\n<h2>CRUD vs REST: Qual \u00e9 a diferen\u00e7a<\/h2>\n<p>REST \u00e9 um estilo de arquitetura de constru\u00e7\u00e3o de aplicativos em rede com base em um protocolo de comunica\u00e7\u00e3o cliente-servidor, stateless e armazen\u00e1vel em cache, ou seja, o protocolo HTTP. CRUD \u00e9 um acr\u00f4nimo para CREATE, READ, UPDATE e DELETE, as fun\u00e7\u00f5es b\u00e1sicas de armazenamento persistente em programa\u00e7\u00e3o.<\/p>\n<p>As opera\u00e7\u00f5es CRUD, ou seja, CREATE, READ, UPDATE, DELETE, s\u00e3o semelhantes aos comandos b\u00e1sicos do REST, ou seja, GET, PUT, POST, DELETE, o que leva \u00e0 confus\u00e3o entre os dois. O que \u00e9 CRUD? O que \u00e9 RESTO? Em CRUD vs REST, qual \u00e9 a defini\u00e7\u00e3o de CRUD? O REST \u00e9 uma mera c\u00f3pia carbono do CRUD?<\/p>\n<p>Estas s\u00e3o todas perguntas muito pertinentes que este artigo pretende responder em detalhe!<\/p>\n<h3><strong>Como funciona o REST?<\/strong><\/h3>\n<p>Voc\u00ea n\u00e3o pode entender termos como API REST, servi\u00e7os REST, matriz CRUD ou banco de dados CRUD ou programa\u00e7\u00e3o REST se n\u00e3o entender a diferen\u00e7a entre os dois processos no que diz respeito \u00e0 maneira como eles funcionam. A confus\u00e3o desaparecer\u00e1 quando voc\u00ea conhecer essa diferen\u00e7a.<\/p>\n<p>Voc\u00ea pode trabalhar REST em qualquer recurso, seja um arquivo de m\u00eddia, documento, site, etc. N\u00e3o h\u00e1 restri\u00e7\u00f5es quanto ao que voc\u00ea pode trabalhar REST; voc\u00ea pode usar HTML apenas como protocolo de comunica\u00e7\u00e3o para apontar os recursos. REST significa Transfer\u00eancia de Estado Representacional.<\/p>\n<p>REST indica que cada URL distinto representa algum objeto, que voc\u00ea pode acessar por meio de um HTTP GET, bem como modific\u00e1-lo e exclu\u00ed-lo por meio de HTTP POST, PUT ou DELETE.<\/p>\n<h3><strong>Como o CRUD funciona?<\/strong><\/h3>\n<p>Voc\u00ea s\u00f3 pode aplicar CRUD em registros de banco de dados e n\u00e3o pode criar APIs CRUD como cria APIs REST. A aplica\u00e7\u00e3o CRUD \u00e9 restrita a bancos de dados, raz\u00e3o pela qual CRUD, diferentemente do REST, n\u00e3o \u00e9 um estilo de arquitetura, mas um ciclo. Todos os aplicativos e sites cont\u00eam diferentes ciclos CRUD.<\/p>\n<p>Por exemplo, um visitante em um site de com\u00e9rcio eletr\u00f4nico pode CRIAR uma conta, ATUALIZAR a conta, LER as informa\u00e7\u00f5es e EXCLUIR a conta. Esse \u00e9 um ciclo CRUD completo que inclui todas as opera\u00e7\u00f5es CRUD.<\/p>\n<p>Por exemplo, no mesmo site de com\u00e9rcio eletr\u00f4nico, um visitante pode CRIAR um item no carrinho eletr\u00f4nico e, em seguida, completar o ciclo CRUD completo por LEITURA, ATUALIZA\u00c7\u00c3O e at\u00e9 EXCLUS\u00c3O do item.<\/p>\n<h3><strong>A Funda\u00e7\u00e3o e os Princ\u00edpios do REST<\/strong><\/h3>\n<p>Os comandos b\u00e1sicos da Representational State Transfer \u2013 a sigla REST \u2013 giram em torno de um objeto ou recurso, que pode ser descrito como qualquer coisa que voc\u00ea possa revelar usando o protocolo HTTP. Exemplos de recursos REST: imagem, site, documento, servi\u00e7o. O c\u00e9u \u00e9 o limite.<\/p>\n<p>REST \u00e9 uma Interface de Programa\u00e7\u00e3o de Aplicativos, ou API, ou uma arquitetura destinada a multim\u00eddia distribu\u00edda. Uma API \u00e9 um servi\u00e7o web que segue os princ\u00edpios da arquitetura REST. Assim, REST chama cada API por meio de um dos m\u00e9todos de solicita\u00e7\u00e3o HTTP, GET, PUT, POST e DELETE.<\/p>\n<h3><strong>Os Seis Princ\u00edpios Orientadores da Arquitetura RESTful<\/strong><\/h3>\n<ol>\n<li>\n<h3><strong>Mandato cliente-servidor<\/strong><\/h3>\n<\/li>\n<\/ol>\n<p>O mandato cliente-servidor enfatiza o fato de que REST representa um m\u00e9todo distribu\u00eddo que depende da natureza da separa\u00e7\u00e3o cliente-servidor. Um servi\u00e7o REST envolve v\u00e1rios recursos e atende a solicita\u00e7\u00f5es. O cliente faz as solicita\u00e7\u00f5es e o servidor as aceita ou nega.<\/p>\n<ol start=\"2\">\n<li>\n<h3><strong>Apatridia<\/strong><\/h3>\n<\/li>\n<\/ol>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-205612-61e8cbbce0972.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-205612-61e8cbbce0972.jpg\" alt=\"Criando um sistema CRUD no WordPress - wpDataTables Tables Plugin\" ><\/a><\/p>\n<p>A aus\u00eancia de estado restringe o tipo de solicita\u00e7\u00f5es que podem ser enviadas entre consumidor e servidor. Na verdade, \u00e9 a solicita\u00e7\u00e3o que inicia a comunica\u00e7\u00e3o cliente-servi\u00e7o, onde a solicita\u00e7\u00e3o cont\u00e9m todas as informa\u00e7\u00f5es necess\u00e1rias para que o servidor responda.<\/p>\n<ol start=\"3\">\n<li>\n<h3><strong>Cache<\/strong><\/h3>\n<\/li>\n<\/ol>\n<p>O objetivo de armazenar em cache uma solicita\u00e7\u00e3o \u00e9 nunca ter que enviar a mesma solicita\u00e7\u00e3o duas vezes porque o armazenamento em cache instrui o servidor a rotular as respostas como armazen\u00e1veis \u200b\u200bem cache ou n\u00e3o. Como resultado, o cache reduz as restri\u00e7\u00f5es ou restri\u00e7\u00f5es geradas pela aus\u00eancia de estado.<\/p>\n<ol start=\"4\">\n<li>\n<h3><strong>Contrato Uniforme<\/strong><\/h3>\n<\/li>\n<\/ol>\n<p>O Contrato Uniforme exclui o uso de v\u00e1rias interfaces independentes dentro de uma Interface de Programa\u00e7\u00e3o de Aplicativos ou API. O REST segue os princ\u00edpios de um Contrato Uniforme. Portanto, uma interface REST \u00e9 compartilhada por meio de conex\u00f5es hiperm\u00eddia.<\/p>\n<ol start=\"5\">\n<li>\n<h3><strong>Sistema em camadas<\/strong><\/h3>\n<\/li>\n<\/ol>\n<p>Um sistema em camadas emprega v\u00e1rias camadas independentes para desenvolver e estender a interface. Como as camadas n\u00e3o podem ver umas nas outras, podem ser inseridos novos pedidos e middleware que n\u00e3o ter\u00e3o impacto nos comandos iniciais e no funcionamento cliente-servidor.<\/p>\n<ol start=\"6\">\n<li>\n<h3><strong>Opcional: C\u00f3digo sob demanda<\/strong><\/h3>\n<\/li>\n<\/ol>\n<p>Embora Cliente-Servidor, Cache, Sem Estado, Contrato Uniforme e Sistema em Camadas sejam itens obrigat\u00f3rios para aplicativos RESTful, o Code-On-Demand n\u00e3o \u00e9 obrigat\u00f3rio. No entanto, o Code-on-Demand permite que a l\u00f3gica dentro dos clientes permane\u00e7a independente e, portanto, atualizada separadamente da l\u00f3gica do servidor.<\/p>\n<h3><strong>Considera\u00e7\u00f5es finais sobre CRUD vs REST<\/strong><\/h3>\n<p>O CRUD envolve as opera\u00e7\u00f5es essenciais realizadas no armazenamento de dados est\u00e1ticos ou bancos de dados, como manipula\u00e7\u00e3o de registros ou objetos passivos. CRUD essencialmente manipula dados b\u00e1sicos.<\/p>\n<p>REST conta com a representa\u00e7\u00e3o de recursos por meio de URLs \u00fanicas, onde os recursos s\u00e3o abstra\u00e7\u00f5es de objetos, onde o coment\u00e1rio de um usu\u00e1rio pode ser um recurso, por exemplo.<\/p>\n<p>Como tal, REST envolve mais do que um registro em uma tabela de coment\u00e1rios. REST \u00e9 sobre o relacionamento do registro com o recurso do usu\u00e1rio e a postagem\/coment\u00e1rio ao qual ele est\u00e1 anexado. REST \u00e9 um estilo de API de alto n\u00edvel que interage com um sistema complexo.<\/p>\n<hr \/>\n<p>Claro, este artigo n\u00e3o era um tutorial completo \u2013 j\u00e1 que levaria vinte p\u00e1ginas para escrever um. Mas deixe-nos saber se voc\u00ea tiver alguma d\u00favida, ou gostaria de ver um exemplo espec\u00edfico passo a passo, e n\u00f3s criaremos um para voc\u00ea.<\/p>\n<p>Esperamos que tenha sido \u00fatil de alguma forma.<\/p>\n<p>Obrigado por ler!<\/p>\n<p>Fonte da imagem: <a href=\"http:\/\/www.tyseo.net\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">http:\/\/www.tyseo.net<\/a><\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte de grava\u00e7\u00e3o:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/wpdatatables.com\" class=\"external external_icon\">wpdatatables.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Criar um sistema CRUD no WordPress pode ser complicado. Neste artigo veremos a defini\u00e7\u00e3o de um sistema CRUD e atrav\u00e9s de diferentes formas de como faz\u00ea-lo.<\/p>\n","protected":false},"author":1,"featured_media":205613,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[816,846,867],"tags":[1170],"class_list":["post-226029","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-plug-ins","category-tutoriais","category-wordpress-8","tag-affiai-pt-pt"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/226029","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/comments?post=226029"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/posts\/226029\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media\/205613"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/media?parent=226029"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/categories?post=226029"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/pt-pt\/wp-json\/wp\/v2\/tags?post=226029"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}