COMO CRIAR UMA API REST DO ZERO COM PYTHON E FLASK

Поделиться
HTML-код
  • Опубликовано: 1 ноя 2024
  • Saber como criar uma API REST do zero com Python e Flask está sendo cada vez mais uma habilidade extremamente vital para qualquer programador que queira crescer em sua carreira na área do desenvolvimento de software.
    Cada vez mais as soluções estão sendo contruída baseadas na Web e uma API REST é essencial para que isso aconteça. Então saber como criar uma API REST do incío até o fim de forma orgranizada é o mínimo que está sendo exigido para qualquer vaga de emprego com programador.
    Nesse vídeo vamos aprender de forma 100% prática, colocando a mão na massa uma API utilizando a linguagem de programação Python e seu Micro-Framework Flask.
    MELHOR CURSO PROGRAMADOR FULLSTACK
    📲 💻hotm.art/SUPER...
    ✔️🐍 Meu Curso com DESCONTO EXCLUSIVO: bit.ly/y-3qk76A2
    🚨🚨🚨 PROMOÇÕES 🚨🚨🚨:
    🚨 MOUSE - amzn.to/3kaNmgv
    🚨 FONE + HEADSET - amzn.to/3sspmZd
    🚨 MONITOR ULTRAWIDE - amzn.to/3pBUgw5
    🚨 TECLADO MECÂNICO - amzn.to/3kc3T3O
    📚 Leitura OBRIGATÓRIA
    REST. Construa API's Inteligentes de Maneira Simples: amzn.to/2ZDuHAg
    Clean Code: amzn.to/3skw1Vb
    O Universo da Programação: amzn.to/2MeqbVW
    Como Ser Um Programador Melhor: amzn.to/3k9lnO5
    Padrões de Projetos: Soluções Reutilizaveis de Software: amzn.to/3bn5lw2
    🚨🚨🚨 INSCREVA-SE: bit.ly/SJDhhaA12
    0:25 - Vital para a vida de um programador
    1:23 - O que é o Flask?
    2:02 - Inscreva-se!
    2:48 - Iniciando o desenvolvimento
    3:10 - Criando uma venv
    4:04 - VSCode
    5:03 - Instalando Flask
    5:23 - Criando a primeira aplicação em Flask
    6:50 - Um projeto de verdade!
    8:30 - Criando a classe da instancia do server
    10:20 - Criando o controller
    15:30 - Testando o endpoint GET
    16:00 - Criando o endpoint POST
    17:40 - Testando o endpoint POST
    18:20 - Documentando a API
    18:40 - Super desconto do meu curso: bit.ly/y-3qk76A2
    Documentações:
    Flask: flask.palletsp...
    Flask Restplus: flask-restplus...
    ✅ Gostou desse vídeo?
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ✍️ Deixe seu comentário
    📢 Compartilhe com os amigos
    🕵 E me siga nas redes sociais
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ▸ Instagram
    bit.ly/PedroIm...
    ▸ Medium
    bit.ly/PedroIm...
    ▸ GitHub
    github.com/ped...
    ▸ LinkedIn
    bit.ly/PedroIm...
    - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Комментарии • 90

  • @pedroimpulcetto
    @pedroimpulcetto  3 года назад +3

    MELHOR CURSO PROGRAMADOR FULLSTACK
    📲 💻hotm.art/dev-fullstack-profissional

  • @fverdelone
    @fverdelone 2 года назад +8

    Parabésn pelo conteudo, excelente! Dica para quem chegou depois de hoje 31/10/2022.
    O Modulo FLASK-RESTPLUS foi substituido pelo modulo FLASK-RESTX e as versões em funcionamento hoje são: Flask == 2.1.2, flask-restx >= 0.5.1, Werkzeug

    • @LucasBiunessa
      @LucasBiunessa 11 месяцев назад

      TOP !

    • @pedroceara3007
      @pedroceara3007 9 месяцев назад

      mano ce salvouu, valeu!!

    • @33jetset
      @33jetset 5 месяцев назад

      após 1 ano aqui ja não é mais assim, para consumir este contudo sem erros ao iniciar o server precisa de FLASK-RESTX and Werkzeug ==3.0.3

  • @nmqor-yh1pc
    @nmqor-yh1pc 3 месяца назад

    Muito bom, obrigado. Sobre o Werkzeug:
    Basta usar pip install werkzeug para instalar a última versão, incluindo o Flask-RESTx também.

  • @thiagosouzalink
    @thiagosouzalink 3 года назад +10

    Excelente aula.
    Tive problemas com flask-restplus mas contornei utilizando flask-restx

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад

      Boa Thiago 🙏🏻 valeu pela mensagem cara, fico feliz que tenha ajudado e que tenha conseguido resolver o problema aí 🙏🏻

    • @joaomarquesification
      @joaomarquesification 2 года назад

      me salvou cara, utilizei o flask-restx e funcionou tudo belezinha aqui :)

  • @felipeberretella2086
    @felipeberretella2086 2 года назад +6

    Melhor tutorial que encontrei até agora
    Só uma OBS:
    'flesk_restplus ' foi descontinuado por algum problema na chave .... mas é só substituir por 'flesk_restx'
    'restx' é o mesmo que 'restplus '
    Instalar e substituir os imports por 'flesk_restx' ... aqui funcionou.

  • @TheEAS1998
    @TheEAS1998 2 года назад +3

    muito bom!
    só um toque, pra aumentar a qualidade do vídeo: aumenta a fonte. Isso pode ajudar bastante quem tem que dividir o monitor ou assistir em PiP

  • @nilon400
    @nilon400 3 года назад +4

    Valeu mesmo cara, nunca tinha feito uma API e com seu video ficou tudo mais fácil! Só tive que usar o flask-restx ao invés do flask-restplus porque esse último foi descontinuado.

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад +1

      Que show Renan!! Muito obrigado pela sua mensagem 🙏🏻 fico muito feliz em saber que o vídeo tenha ajudado 😄😄

    • @giancolijabour
      @giancolijabour 3 года назад

      Opa, boa noite. Saberia me dizer qual versão do Werkzeug vc usou?

    • @giancolijabour
      @giancolijabour 3 года назад

      Pq parece que tanto a 2.0.0 quanto a 0.16.0 não são compatíveis com flask-restx

    • @nilon400
      @nilon400 3 года назад

      @@giancolijabour usei essa versão aqui Werkzeug==1.0.1

  • @33jetset
    @33jetset 5 месяцев назад

    otimo conteudo! não para mano...

  • @lucianossweb
    @lucianossweb 3 года назад +1

    Pedrera da Bahia, muito obrigado por didaticamente dar simplicidade à confecção da API. Estou com um desafio de enviar informações para o Azure DEVOPs e vou utilizar esta estrutura que você apresentou aqui. Muito Obrigado!

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад

      que Toop Luciano!!! é isso aí, fico feliz que esteja ajudando
      grande abraço

  • @lucasoliveira-cy8ey
    @lucasoliveira-cy8ey 3 месяца назад

    mano trampo com django, mas me envolvi em um projeto usanod flask, resumindo estou aqui pesquisando kkkk, valeu pelo video!

  • @LeandroAlves-rc2qg
    @LeandroAlves-rc2qg 3 года назад +2

    Que aula TOP!!! Tive problema no flask-restplus mas troquei pelo flask-restx e passou. Tem algum video sobre o deploy disto em alguma nuvem? azure ou aws, etc...

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад +2

      Boa Leandro!! Realmente o flask-restplus foi descontinuado e agora o flask-restx está no lugar dele.
      Sobre o deploy, eu tenho um vídeo (ruclips.net/video/01iXLbvGcNE/видео.html) que faço o deploy na plataforma do Heroku (totalmente gratuita) com a aplicação Django.
      Mas fica de olho aqui no canal que nas próximas semana vai ser um vídeo sobre o deploy no GCP com essa aplicação ai
      Grande abraço

  • @infodevbrasil
    @infodevbrasil Год назад

    muito legal, mas porque vc não usa o console do vscode?; porque vc ta usando a estrutura igual ao app node ou ate react?

  • @nathanmiranda3736
    @nathanmiranda3736 Год назад

    Olá muito bom o video parabéns! mas eu gostaria de saber se com o flask-sqlalchemy é possivel interligar dois models, com o ORM.

  • @logicafuzzy3026
    @logicafuzzy3026 2 года назад +2

    o ''from server.instance import server'' não funcionou no meu :(

  • @kawazapbr
    @kawazapbr 3 года назад +2

    Didática simples e objetiva, gostei

  • @walney2008
    @walney2008 3 года назад +5

    muito show, gostaria de aprender criar apis, tipo do ifood, eles tem uma autenticacao, que devemos gerar para obter um token que tem mais de 1000 caracteres, este token tem validade de 6 horas, chegando perto de acabar tem que ser gerado outro pela aplicação que vai consumir, pode nos ensinar tipo esta api do ifood ? e também como consumila depois que estou estudando, ^^, outra coisa teria como no video aumentar a fonte dificil de ver os codigos, e obrigado

  • @leonardoblack1213
    @leonardoblack1213 3 года назад +1

    Parabens Pedro, video direto e com informações uteis

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад

      Opaa Leonardo!! Que top a mensagem!! Muito obrigado mesmo 👊🏻👊🏻👊🏻

  • @bryandbernhardt
    @bryandbernhardt 2 года назад

    Muito boa a tua didática!! Poderia me dizer qual seria a arquitetura utilizada? Vi que dividiu nos arquivos controllers e server, adicionei uma conexão com API criando outra pasta services...

  • @guilhermebrantgarcia5318
    @guilhermebrantgarcia5318 3 года назад +5

    Fala Pedro, belo vídeo cara! Só uma sugestão de melhoria flask_restplus está sendo descontinuado, e o flask_restx está tomando o lugar, TMJ e obg pelo conteúdo.

    • @pedroimpulcetto
      @pedroimpulcetto  2 года назад +1

      Opa Guilherme, muuuito obrigado pela mensagem, é isso aí mesmo, bem pontuado
      grande abraçoo

  • @jonmallco4185
    @jonmallco4185 2 года назад +1

    video maravilhoso, mas da um zoom na tela fvr, meus olhos agradacem🤓

  • @rask_nho
    @rask_nho Год назад

    Mds finalmente um video onde eu vejo uma api com arquitetura de projeto bem feita e nao controladores, classes de entidade, conexão com o banco em um arquivo só e ta pronta a "api"

  • @geovanejunior95
    @geovanejunior95 2 года назад

    Parabéns, conteudo incrivel.

  • @samuelteixeira368
    @samuelteixeira368 2 года назад +1

    Consigo consumir uma api feita em python/flask em um aplicativo react-native?

    • @pedroimpulcetto
      @pedroimpulcetto  2 года назад +1

      Opa Samuel, com certeza!
      Uma API Rest pode ser consumida por qualquer “client” não importa qual linguagem se programação é

  • @prof.cintiapinho7824
    @prof.cintiapinho7824 3 года назад +1

    Qual o segundo video? após esse, para criar do Documentação? Não achei

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад

      Olá Cíntia, tá na mão: ruclips.net/video/wfVpAzhg6e0/видео.html
      espero que tenha ajudado :)

  • @victorramospereira2474
    @victorramospereira2474 2 года назад

    Meu flas_restplus dá um erro na hora do import
    "from collections.abc import OrderedDict, MutableMapping
    ImportError: cannot import name 'OrderedDict' from 'collections"

  • @paulomagalhaes6752
    @paulomagalhaes6752 3 года назад +1

    Neste tutorial eu nao preciso criar um vitualenv ou qualquer coisa assim?

  • @romgusman
    @romgusman 2 года назад

    Bom, sabe-se lá o porque eu NÃO CONSIGO DE JEITO NENHUM fazer automações no windows, tive que instalar Linux (Kali no caso), sofri um pouco, acho que no ubuntu teria sofrido menos, mas enfim...
    O meu estava com um erro por causa do Flask RestPlus, que foi descontinuado, usem o FLASK RESTX que funciona caso tenham o mesmo erro.

  • @wolneycerqueira6093
    @wolneycerqueira6093 2 года назад +1

    Ótimo vídeo!
    Para mim aparece o seguinte erro:
    app,api = server.app,server.api
    AttributeError: 'Server' object has no attribute 'app'
    Já revisei o código várias vezes, está igual.
    Alguma sugestão?

    • @ssk-ct7cr
      @ssk-ct7cr 2 года назад

      Wolney, você instalou o flask_restx ao invés do flask_restplus como dito em comentários anteriores?

  • @ccturviagenseturismo8535
    @ccturviagenseturismo8535 2 года назад

    Muito bom! Este seria o mesmo processo de API Rest para criar produtos no wordpress (não uso woocommerce, uso um tema) e que possa ser copiado para o vTiger automaticamente?

  • @karolcostaa
    @karolcostaa 2 года назад

    Disponibiliza teu curso para Udemy business, please!

  • @pensamentosimpuros4945
    @pensamentosimpuros4945 3 года назад +1

    Colegal, por favor ... tô quebrando a cabeça aqui ... estou usando python 3.8.6 com flask 2.0, werkzeug 2.0 e flask-restplus 0.13
    Traceback (most recent call last):
    File "main.py", line 1, in
    from src.server.instance import *
    File "C:\Users\WINDOWS\Documents\PythonProjEnvs\PyApi2\PyApi2\src\server\instance.py", line 2, in
    from flask_restplus import Api
    File "C:\Users\WINDOWS\Documents\PythonProjEnvs\PyApi2\PyApi2\lib\site-packages\flask_restplus\__init__.py", line 4, in
    from . import fields, reqparse, apidoc, inputs, cors
    File "C:\Users\WINDOWS\Documents\PythonProjEnvs\PyApi2\PyApi2\lib\site-packages\flask_restplus\fields.py", line 17, in
    from werkzeug import cached_property
    ImportError: cannot import name 'cached_property' from 'werkzeug' (C:\Users\WINDOWS\Documents\PythonProjEnvs\PyApi2\PyApi2\lib\site-packages\werkzeug\__init__.py)
    O que pode estar acontecendo ??

    • @VictorOnFlutter
      @VictorOnFlutter 2 года назад

      conseguiu temrinar?

    • @tamaraalmeida144
      @tamaraalmeida144 2 года назад +1

      Troquei flask_restplus pelo flask_restx com o werkzeug 2.0.1 e funcionou

  • @filipespadetto4042
    @filipespadetto4042 2 года назад

    Muito legal a iniciativa. Achei o tutorial simples e bem focado. Poderia melhorar um pouco na explicação, por exemplo, para quem nunca mexeu com flask explicando o porquê de cada coisa mais detalhado.

  • @devfellps
    @devfellps 2 года назад

    Cara não consigo ativar a virtual env...
    eu instalei ela primeiro com o comando "pip install virtualenv"
    criei ela com "virtualenv pyflask" e fui tentar ativar...
    eu passo o comando "source pyflask/bin/activate" não vai
    passei só "pyflask/bin/activate" tmb não foi
    passei: activate pyflask tmb não deu
    diz que o "source não é reconhecido pelo cmdlet" porém não sei como resolver...

    • @devfellps
      @devfellps 2 года назад

      Consegui ativar aqui, para quem tiver o mesmo problema fiz o seguinte:
      Passei o comando "NomedaSuaPastaVenv/Scripts/Activate.ps1" (.ps1 para quem estiver usando no powershell)
      para quem usar no cmd tente utilizar o ".bat"

  • @zeneto2157
    @zeneto2157 3 года назад +2

    Colega, a pasta src não ficou dentro da venv ?? segundo mostra o code. ?

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад

      Ola Zé, obrigado pela mensagem
      A pasta src está ao lado da venv

  • @py5zd
    @py5zd 3 года назад +1

    Muito bom tutorial. Consegui implementar diversas APIs mas não consigo implementar para @api.route('/'). Ocorre ""GET / HTTP/1.1" 404 -".
    Outro problema ocorre ao utilizar render_template('hello.html')... não está encontrando o template que está na pasta /templates.
    Não sei se pode ser algo relacionado ao uso do flask_restplus ...
    Você pretende publicar um curso Flask no Udemy ? .... ou orienta utilizar Django ao invés de Flask ?

    • @luizfernandogomesdeoliveir8271
      @luizfernandogomesdeoliveir8271 3 года назад

      Olá Marcelo, por acaso você conseguiu resolver esse problema com o API route, estou com o mesmo problema.

  • @wellingtondasilva6021
    @wellingtondasilva6021 2 года назад

    Uma dúvida, como seria utilizar vários gets? Por exemplo getBooks e getBookById? Seriam todos os métodos com o mesmo nome "get" alterando apenas a rota do endpoint?

  • @pensamentosimpuros4945
    @pensamentosimpuros4945 3 года назад +1

    O consumo de memória do wsl2 é nojento de grande ... Comecei a considerar voltar pro vbox, pois assim posso controlar a ram usada pelo processo hyper-v Eu tb estou com um note velho com 6gb de ram e nem o docker posso usar

  • @brunomelo3397
    @brunomelo3397 3 года назад +1

    Boa tarde, poderia-me explicar como acesso uma base de dados com esta API? Ótimos vídeos muitos parabéns :)

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад +2

      Fala Bruno, obrigado por perguntar aqui, na verdade eu já estou gravando um vídeo para esse assunto e logo logo estará no ar, provavelmente semana que vem. Então fica de olho aqui no canal pra você não perder ele.
      Grande abraço!!

  • @CELUGames
    @CELUGames 3 года назад +1

    Ola, mano. Gostaria de saber qual comando para windows, no lugar de "export". Abraço.

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад

      opa Marcelo, puts, não entendi muito bem 😕

    • @sandysilva3188
      @sandysilva3188 3 года назад +3

      set FLASK_APP=main.py

    • @MichelLedig
      @MichelLedig 2 года назад

      ou deixar no arquivo do programa app.run(port=8080, debug=True) e rodar como se fosse qualquer outro script de python

  • @fabriciomoura3023
    @fabriciomoura3023 2 года назад

    OPa. ta top a aula. Mas tive um problema no server, tento instalar o modulo com pip e me retorna isso: ERROR: Could not find a version that satisfies the requirement server (from versions: none)
    ERROR: No matching distribution found for server.
    Alguém pode ajudar?

  • @rafaelandrade3477
    @rafaelandrade3477 Год назад

    Qual o nome desse termina?

  • @ewerton8097
    @ewerton8097 3 года назад +2

    Ótimo vídeo Pedro, cara seria legal fazer uma API assim usando um banco, SQLite mesmo

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад

      Opa Ewerton!! Boa ideia cara!! Vou fazer um sim, da pra fazer tranquilo
      Fica de olho que nos próximos vídeos já vai estar disponível
      👊🏻👊🏻

  • @rochafilms6199
    @rochafilms6199 3 года назад +1

    Cara porque digito no cmd venv/bin/activate e não funciona, tem mo dificuldate com essas virtual venv

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад

      opa Daniloo, puts cara
      se estiver usando algum Linux precisa colocar o "source" antes.
      tipo assim: source venv/bin/activate

    • @rochafilms6199
      @rochafilms6199 3 года назад

      @@pedroimpulcetto sofri aqui mais entendi, valeu.

  • @jhajhfed
    @jhajhfed 2 года назад

    Muito massa o video, voce esta usando zsh no seu sheel?

    • @jhajhfed
      @jhajhfed 2 года назад

      Pode fazer um video ensinando a colocar o wsl dentro do windows e colocando tema zsh igual da sua maquina?

  • @lynes.
    @lynes. 3 года назад +2

    o meu tá dando o seguinte erro: "TypeError: The view function did not return a valid response. The return type must be a string, dict, tuple, Response instance, or WSGI callable, but it was a Booklist."
    Tranformei em tuple mas mesmo assim não tá rolando, se alguém souber como ajudar agradeço.

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад

      Opa Alyne, pelo erro, parece que na response você está retornando um objeto “Booklist” e não um “dict”

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад

      Se não conseguir, compartilhe o repositório com a gente aqui para podermos te ajudar

    • @guilhermebrantgarcia5318
      @guilhermebrantgarcia5318 3 года назад

      dentro de controllers antes da class BooksList voce declarou @app ou @api? pq o certo é @api, espero que isso ajude!

    • @arthurgalvao8958
      @arthurgalvao8958 2 года назад +1

      @@guilhermebrantgarcia5318 Muito obrigado mano, passei um tempão nesse erro kkkkk, falta de atenção é fogo

  • @CharlesSilva-xh2pm
    @CharlesSilva-xh2pm 3 года назад +2

    Que terminal é esse no video?

    • @pedroimpulcetto
      @pedroimpulcetto  3 года назад

      Faaala Charles!! cara o terminal é Hyper, o design nele usei o Oh My Zsh Spaceship + Dracula Theme e as funções dele são do WSL Ubunto para Windows. Abração 👊🏻😄

  • @openlabtec
    @openlabtec Год назад

    Anotações.

  • @cicerotcv
    @cicerotcv 3 года назад +2

    bom video!

  • @GabrielOliveira-ox4bg
    @GabrielOliveira-ox4bg 2 года назад

    Quem estiver recebendo o Erro:
    from flask import Flask
    ModuleNotFoundError: No module named 'flask'
    Basta instalar usando : pip3.10 install Flask.
    Versão do meu python
    Python 3.9.12

  • @kuzco7061
    @kuzco7061 2 года назад

    Alguma chance de rolar uma parte 2 mostrando como fazer os métodos PUT e DELETE? Eu entendi que é pra criar funções dentro da classe BookList mas, como fazer as funções é o que tá me bugando mesmo. Como selecionar a id pra deletar, como fazer um put que muda o título pela id, e por aí vai.
    Seria bem foda!

  • @daniloteixeira2227
    @daniloteixeira2227 2 года назад

    Tem uma coisa só, eu não tenho os comandos do linux dentro do windows kkkk

  • @romgusman
    @romgusman 2 года назад

    405 Method not allowed, alguém ajuda?

  • @SBonifacioJr
    @SBonifacioJr 2 года назад

    Eu travei nesse erro aqui. Está muito difícil resolver! Podem me ajudar?
    Traceback (most recent call last):
    File "C:\Users\Dell\library\app.py", line 1, in
    from src.server.instance import server
    File "C:\Users\Dell\library\src\server\instance.py", line 3, in
    from flask_restplus import Api
    File "C:\Users\Dell\library\venv\lib\site-packages\flask_restplus\__init__.py", line 4, in
    from . import fields, reqparse, apidoc, inputs, cors
    File "C:\Users\Dell\library\venv\lib\site-packages\flask_restplus\fields.py", line 17, in
    from werkzeug import cached_property
    ImportError: cannot import name 'cached_property' from 'werkzeug' (C:\Users\Dell\library\venv\lib\site-packages\werkzeug\__init__.py)