Que legal, não sabia que dava para fazer dessa forma sem framework, não conhecia a função que chama uma classe e um método especifico sem usar framework, muito bom
Excelente. Eu estava procurando algo do tipo pra tentar substituir o Unidac e mydac do delphi mobile por um consumo de um serviço do tipo Rest/Php/Json. Agora ja tenho a metade do caminho percorrido. Ja sou mais um inscrito.
Top cara, eu estava querendo começar a aprender Rest, esse foi o primeiro vídeo que assisti, mt bem explicado, já é um bom começo pra mim, Parabéns e que continue fazendo ótimos videos igual esse.
Parabéns muito bom o vídeo... serviu de base para eu começar a fazer algumas coisas... agora só apanhando pra poder passar uma variável para pesquisa... quero passar só o código de um produto e retornar quantidade, descrição, NCM, etc... mas ajudou bastante. Valeu!
@@RafaelCapoani Ok. Porém no exemplo h´qa a opção de passagem de parâmetros ($parametros). Não entendi como passar estes parâmetros e seria possível utilizar esta VAR na query SQL. No exemplo ela está assim: SELECT * FROM estoque ORDER BY id ASC. Gostaria de usar os parâmetros de modo que o SQL ficasse : SELECT * FROM estoque WHERE cor = "vermelho" ORDER BY id ASC. por exemplo.
Parabéns e obrigado pelo vídeo! Finalmente essa questão de REST API com PHP + MYSQL clareou!!! Como seria, por exemplo, a empresa matriz buscar as informações somente de um produto específico?
Rafael Capoani, Muito obrigado! Não conseguir resgatar a URL amigável com $_REQUEST pois uso NGINX, mas ainda assim a API ficou ótima, consegui passar parâmetros, POST e Get (convencional). Muito obrigado mesmo
Show amigo, parabéns. Se você quiser tem como trabalhar com URLs amigáveis no nginx também, mas sem o .htacess e sim mudando o arquivo de configuração do nginx..não lembro como faz, mas tem muitas publicações sobre esse assunto!
Pois é, eu também não sei muito bem, pois ainda não cheguei a usar o nginx...mas pretendo hehe Tem um manual bem simples no laravel para deixar as urls amigáveis no nginx, ve se talvez funciona: laravel.com/docs/7.x/installation#pretty-urls
Cara, que vídeo muito bom! Tava precisando exatamente disso! Curti demais! Parabéns 👏👏👏👏 Continue produzindo conteúdo desse tipo pra galera! Bom demais!
Excelente tutorial! Poderia trazer um vídeo autenticar usando jwt, usando somente o php igual a esse vídeo, bloqueando acesso via url, post etc... Estou tentando fazer algo assim, mais não encontro algum tutorial que fale sobre isso.
Rafael, obrigado pelo excelente video! Tenho uma duvida um pouco mais basica sobre APIs. Como eu sei quais os provedores que permitem a hospedagem de uma API PHP? Como é o processo de instalar a API no provedor? Tenho receio de contratar uma hospedagem e somente depois descobrir que não é possível trabalhar com API. Abs!
Olá Gabriel, a API a gente cria por meio da própria linguagem de backend...no caso eu utilizo o PHP. Tendo o PHP e o servidor http instalado na hospedagem ou provedor você poderia criar sua api conforme o vídeo (planos de hospedagem comum ja vem com esses requisitos instalados normalmente). Por fim se for realmente criar um API em php, da uma olhada em formas de barrar o acesso a api de pessoas nao autorizadas....uma forma é implantando o JWT junto a API.. Att!
Realmente seria uma boa ter realizado um select pelo id. Mas vou tentar te dar um guiada por aqui. Teria que criar um metodo na API que faz a busca do produto no banco de dados atraves do id passado pela url, e esse metodo retonar o objeto produto referente aquele id. Você ta passando o id pela url ou via post? Ta conseguindo recuperar esse id pelo php?
Muito bom seus videos e estou aprendendo muito, e tenho uma pergunta, me desculpe se for coisa simples mas como sou iniciante em PHP/Rest eu travei completamente. Como faço do lado do servidor para receber um Json tipo(pai e filhos) um pedido(No.Pedido,DataPedido,NomeCliente) com seus itens(Cod.Produto,Qtd,Valor), e do lado cliente qual seria a melhor forma de mandar esse json qual o melhor verbo POST/PUT não sei nem como montar um para teste. Toda a parte do video que vc explica como pegar as informações da URL eu entendi e até fiz uns testes, e estava indo bem, mas quando fui fazer com o json com pai e filhos travei. Fico muito grato desde já.
Obrigado Eduardo, você pode criar no php um array com subarrays, algo mais ou menos assim: $pessoa = ['nome' => 'eduardo', 'amigos' => ['rafa', 'fulano']]; $json = json_encode($pessoa); Eu usaria os métodos: GET, POST e DELETE apenas.
me ajudou muito com esse vídeo. saberia me explicar por onde eu começo a pesquisar sobre a seguinte questão, eu estou com uma estrutura bem parecida mas para que eu retorne uma informação em um bloco, eu teria que montar 3 query, pois meu banco tem 3 tabelas para que o retorno vá organizado para o cliente. como eu poderia fazer, nao estou conseguindo montar um vetor de forma que fique organizado. muito obrigado
Depende muito do seu caso, mas geralmente é utilizando array e organizar os dados em forma de arvore (bem parecido com o DOM). Ex: Array( 'Tabela1' => 'dados que vc busco', 'Tabela2' => array('ex1' => 1, 'ex2' => 2) ); Obs: você pode ter um array dentro de um array se necessário. Por fim transforma tudo em JSON.
Rafael, na hora de buscar no banco e trzaer os campos no json, a tela fica branca, mas se usar: $retorno = call_user_func_array(array(new $classe, $metodo), $parametros); echo var_dump($retorno); o var_dump trás os registros, mas no json não aparece nada. O que pode ser isso?
Bom dia, gostei bastante do conteudo e fiquei com uma duvida quando fui passar o parametro ID, poderia me auxiliar? na classe mostrar eu estou colocando assim function mostrar($id), no sql eu coloca assim where id = :id, e no navegador \mostrar?id=1. e não esta trazendo o conteudo, pode me ajudar?
Olá Cleiton, você está conseguindo buscar certinho o valor do id da url? Se sim, provavelmente ele não está conseguindo buscar do banco de dados o registro com esse id. Teria que ir debugando o código pra ver em que momento está emperrando. Eu costumo usar o var_dump pra debugar...
@@RafaelCapoani Olá eu consegui avançar bastante com o estudo do API, porem fiquei com algumas duvidas teria algum outro meio de comunicação que eu possamos falar? assim fica mais facil eu explicar
Fala, Cleiton. Beleza? Na verdade o parâmetro "id" deve ser passado na URL da seguinte forma "...estoque/mostrar/1" seguindo o padrão REST. Lembre que o código faz um explode utilizando a "/", logo parametro com "?" não será reconhecido. O método mostrar ficará como você comentou mostrar($id) e concatena o $id na sua query. ;)
No formato do seu .htaccess não consigo coletar via POST, somente via get e através da URL de forma básica que fez pelo .htaccess. Como eu poderia usar o .htaccess e também coletar o envio via POST?
Olá, essa função por trás dos panos chama o controller e executa o metodo informado como parâmetro e também podemos passar quantos parâmetros adicionais a gente quiser.....que eles podem ser utilizados pelo método da controller...
no meu ficou uma tela branca, criei uma tabela vazia e retornou a mensagem de nenhum produto no estoque,ok. Porém qdo adiciono algum produto não aparece nada
Provavelmente está com algum problema no seu codigo ele nao deve estar retornando os registros do banco de dados....tenta dar um var_dump antes de retornar o resultado pra conferir se está tudo certo..
Show, cara!!!! Desvendou o "mito" da api com php. Mas tenho uma dúvida... Estou tentando fazer um front end com angular js. Tem como? Obrigado, Luciano - Curitiba-PR
Que bom cara!! Pode sim, pode usar angularjs, reactjs, o que preferir no front...você só tem que enviar uma requisição http/ajax do front pro backend em php. A api retornará os dados em json pro front conforme no vídeo.
@@RafaelCapoani Legal, é que tenho uma app que uso angular js e uso um servidor datasnap. Não é viável financeiramente, por isso há muuuuuito tempo estou a procura de um tutorial excelente como esse. Serviu como uma luva. O processo é o mesmo? No lugar em que coloco a url (do datasnap) na página html, eu substituo pele url dessa api?
Boa Tarde, Rafael! Parabens pelo video, óóotimo video cara, eu gostaria de saber se é possível criar essa API agora para fazer inserção de dados(POST), eu estou tentando fazer mas ta dificil... Estou usando o POSTMAN, e queria saber se é possível enviar através dessa URL um Body JSON, e então receber esse Body e transformar em variáveis PHP parar que eu possa salvar no banco...
Agredeçoo Tiago, é possível sim realizar inserção via POST, voce poderia utilizar stream_create_context que irá criar a requisição POST, juntamente com http_build_query para passar os dados que voce quer enviar para a api. Para enviar os dados via url você deve utilizar query_string (ou http_build_query) e não o formato json....o json será apenas o retorno que a api rest vai fornecer!
Valeeu Everton, bom questionamento...realmente não foi usado namespaces na aula (inclusive seria o correto a se fazer). Mas você poderia criar um namespace nos arquivos php criados no projeto e se for o caso aplicar no composer.json esse caminho (psr4), ou simplesmente dar um 'use' com o namespace que você criar. Abraço!
@@RafaelCapoani então, eu fiz exatamente isso e descobri que a função call_user_func_array() não consegue achar as classes nem métodos passados por variável ... não sei o que é ! Se colocar manualmente a função consegue achar normalmente, provando q está achando pelo autoload , mas se trocar pela variável então não funciona !
@@EvertonMessias-er1dv A função call_user_func_array() aceita variáveis como parâmetro, tanto para a classe como para métodos, vou lhe mostrar um exemplo de uso abaixo: call_user_func_array(array(new $controller, $acao), array('id' => $id)); Link do Exemplo: github.com/RafaelCapo/site-php-mvc-crud/blob/master/app/Core/Core.php Obs: Como no seu caso você está trabalhando com namespaces basta dar use nas classes que você chama pelo call_user_func_array(), ou simplesmente fazer isso: $controller = "Minha\NameSpace\\".$controller; call_user_func_array(array(new $controller, $acao), array('id' => $id));
@@RafaelCapoani É que nunca compreendi esse processo, pois os cara simula naquelas ferramentas de teste de api e não em vida real, quando eu apreender repassarei meu conhecimento assim , como ja venho fazendo.
Obrigado! Pois é, nesse caso seria necessário implantar JWT para acessar a API. Ai somente um usuário que autenticou vai poder ter acesso autorizado....vou desenvolver algo nesse sentido mais pra frente!
@@brasilprodutivo7779 eu uso bastante livros, vídeos no youtube, artigos no google e por fim documentações... teria que pesquisar o que faz mais sentido pra vc!
Opa! Você acha melhor criar uma api com o php nativo assim ou é melhor criar com um framework (como o laravel)? Sou iniciante no REST e essa é minha dúvida.
E aí Luís, é a mesma coisa de modos diferentes, não tem pior nem melhor. Se voce costuma usar laravel, ou se no teu trabalho usam laravel, no teu caso o melhor seria usar laravel. Se você tem um framework próprio, ou trabalha com php puro mesmo, pode fazer sua própria API, seguindo o modelo parecido do vídeo. Claro que o ideal é desenvolver seguindo as boas práticas..
@@RafaelCapoani Vlw! Mais uma pergunta: como faço para fazer o login (Auth) nesse esquema do vídeo? porque se eu for fazer uma class Auth e adicionar login, registro, etc ficaria muito grande a class Auth com todos essses métodos, alguma dica para deixar o código mais limpo?
@@Luis-vc6iz Criar uma controller com métodos de login a api, logout, etc.. Em muitos casos é normal ter classes grandes, as vezes mesmo usando os conceitos de orientação a objetos + padrões de projeto a classe continuaria grande. Se você cuidar a questão de repetição de código e boas práticas, estaria tranquilo! Tem uma aula no canal onde criei uma autenticação JWT a API do zero, se você quiser pode dar uma olhada! Att!
Boa noite. Parabéns professor. Comprei recentemente um sistema de contabilidade. Gostaria de logar neste sistema através de um site que criei. Isto é possível ? De que maneira ? Obrigado pelas dicas
ola sou iniciante no assunto, como poderei por exemplo criar um App, que envia e recebe dados do erp, qual a melhor maneira de se fazer isso ? qual a forma mais segura ?
Respondi em outro comentário, mas resumindo cria uma API no PHP (utilizando JWT, ou oAuth + seguro). E no app você chama essa API via ajax ou algo semelhante.
Vou estudar a fundo a criação desta API, pois eu tenho interesse em desenvolver meu próprio sistema para notificar meus clientes de movimentações processuais.
Que bom Thiago, espero que o vídeo tenha te ajudado a dar os primeiros passos. Só ressaltando que caso for criar uma API e ela conter informações que nao devem ser vistas por ninguém, podemos também bloquear o acesso ao conteúdo para usuários sem permissão de acesso..
Como faço para trabalhar com apis ex: 4 shared, SoundCloud, RU-vid, mesmo processo? Poderia fazer um vídeo usando API do 4 shared... Ou me explicar por aqui, pouco se fala no assunto no Brasil e moro em uma região em que se tiver 6 programador e muito.... Eu quero muito aprender a manipular apis, eu entendo como funciona sabe? Só n sei como usar , aqui a doc do 4 shared: www.4shared.com/developer/docs
Teria que seguir a documentação. Eles criaram uma api para termos acesso ha alguns dados do 4shared....ai tem que seguir a documentação, mas normalmente eles fornecem um script para autenticar o usuário a acessar a API e depois é so dar um GET nas URIs que eles fornecem.. RU-vid e Facebook é mais ou menos assim...4shared tbem não vai fugir muito disso.
Não sou a pessoa mais indicada pra falar de vue, pois não utilizo. Mas pelo que sei da sim pra consumir a api por ele, ou seja, você conseguiria ler o retorno que está em JSON. Você pode recriar a arquitetura REST em outras linguanges back-end. Abraço!!
Pessoal, funcionou show de bola, porém estou com duas dúvidas e não consigo progredir: 1 - gostaria de passar na url um parâmetro, ao invés de "estoque" passar um código "00122" por exemplo, que o usuário irá digitar. 2 - no resultado está me apresentando: [{"Pessoa_contato":"EUZEBIO"}] gostaria de exibir o retorno sem estes colchetes. Ficando: {"Pessoa_contato":"EUZEBIO"}, seria possível????
Olá Fabio, no primeiro ponto creio que você pode usar o método HTTP POST ao inves de passar esses dados via URL(HTTP GET). Aí no PHP você recupera os dados vindos da variavel global POST. No segundo ponto, nao sei como está seu código, mas seria so remover o primeiro e último caractere (procurar por funções que fazem isso).....mas com certeza deve ter outra forma melhor do que a citei, falei isso pois não sei como está seu codigo mesmo.