03 - RESTful

00:11:46
https://www.youtube.com/watch?v=yJdPysuuq40

Ringkasan

TLDRVideoclipul discută despre arhitectura REST (Representational State Transfer), care este o metodă utilizată pentru a construi API-uri prin structura și utilizarea eficientă a resurselor. REST funcționează pe o arhitectură client-server unde metodele HTTP (GET, POST, PUT, DELETE) sunt folosite pentru a comunica și a efectua operațiuni pe server. Această arhitectură este importantă pentru a asigura că API-urile sunt construite într-un mod logic și generic, permițând reutilizarea codului și simplificând dezvoltarea. Videoclipul dă exemple dintr-o aplicație bancară pentru a ilustra cum resursele pot fi gestionate prin REST, inclusiv gestionarea conturilor, tranzacțiilor și extragerilor de cont. REST asigură claritate și consistență în numirea și structura operațiunilor, ușurând înțelegerea pentru dezvoltatori.

Takeaways

  • 🤔 REST este un mod de a structura API-uri folosind metode HTTP.
  • 🔄 Transferați stările reprezentative între client și server.
  • 🔍 Ușurează reutilizarea și consistența codului.
  • 🛠️ Exemple de utilizare includ gestionarea conturilor bancare.
  • 📊 Parametrii de interogare pot filtra datele ușor.
  • ✔️ Este comun să folosești JSON în API-uri REST.
  • 🔒 Autorizările sunt importante în accesul resurselor.
  • 🔗 REST simplifică și clarifică punctele de acces și operațiunile.

Garis waktu

  • 00:00:00 - 00:05:00

    În acest segment, se introduce conceptul de REST (Representational State Transfer), explicându-se că este un mod de a structura și utiliza resursele și metodele API-urilor. Accentul se pune pe importanța aplicării principiilor REST pentru a menține codul curat și reutilizabil, ilustrând acest lucru printr-o aplicație de gestionare a conturilor bancare. Se descrie cum ar trebui să fie structurate apelurile API pentru a evita dublarea codului și pentru a folosi nume descriptive pentru funcții, astfel încât să fie ușor de înțeles pentru oricine le accesează.

  • 00:05:00 - 00:11:46

    Continuarea discuției despre REST se concentrează pe implementarea practică a metodei pentru interacțiunea cu un server și manipularea unei entități precum un cont bancar, folosind exemple de GET, POST și PATCH. Se subliniază importanța utilizării consistente a metodelor HTTP pentru operarea pe resurse, insistând pe avantajele unei astfel de structuri care simplifică atât dezvoltarea cât și utilizarea API-urilor. De asemenea, se menționează importanța permisiunilor și a filtrării datelor și se explică diferența dintre metodele PATCH și PUT în actualizarea resurselor. În concluzie, se subliniază că REST nu este un protocol strict, ci mai degrabă un set de bune practici care ajută la dezvoltarea unor API-uri mai eficiente și mai ușor de utilizat.

Peta Pikiran

Video Tanya Jawab

  • Ce este arhitectura REST?

    REST este o arhitectură care presupune transferul de stare reprezentativ (Representational State Transfer), utilizată pentru a construi și structura API-uri eficient.

  • Cum funcționează metodele HTTP într-o API REST?

    Metodele HTTP precum GET, POST, PUT și DELETE sunt utilizate pentru a opera asupra resurselor, fiecare având un rol specific în gestionarea datelor.

  • De ce este importantă consistența în numele și structura API-urilor?

    Consistența în numele și structura API-urilor face mai ușoară înțelegerea și utilizarea acestora de către dezvoltatori, evitând duplicarea codului și facilitând întreținerea.

  • Cum ajută REST la simplificarea codului și a punctelor de acces API?

    REST ajută la reducerea numărului de puncte de acces API și la simplificarea codului prin reutilizarea logicii generice și prin claritatea modului de operare asupra resurselor.

  • Cum se gestionează filtrarea datelor în REST folosind parametrii de interogare?

    În REST, filtrarea datelor se face adesea folosind parametri de interogare după '?' în URL, permițând recuperarea resurselor care îndeplinesc anumite condiții.

  • Este JSON un standard obligatoriu în REST?

    Nu, utilizarea JSON nu este obligatorie în REST, dar este foarte comună datorită simplității sale și suportului larg.

  • Cum se gestionează autentificarea și autorizarea în REST?

    Autentificarea și autorizarea în REST sunt gestionate la nivelul serverului și pot implica verificarea drepturilor de acces la resurse înainte de a permite operațiuni pe acestea.

  • Care sunt avantajele utilizării REST pentru dezvoltatori?

    REST oferă simplitate în utilizarea și întreținerea API-urilor, reducând complexitatea și punctele de acces, și facilitează adoptarea de către dezvoltatori, fiind un standard larg răspândit.

Lihat lebih banyak ringkasan video

Dapatkan akses instan ke ringkasan video YouTube gratis yang didukung oleh AI!
Teks
pt
Gulir Otomatis:
  • 00:00:00
    [Música]
  • 00:00:06
    então agora a gente vai falar de
  • 00:00:08
    westling essencialmente o resto uma pay
  • 00:00:11
    rastream que respeita os conceitos da
  • 00:00:14
    arquitetura West e arquitetura West é
  • 00:00:17
    representational state transfer Ou seja
  • 00:00:19
    é uma transferência de estado de
  • 00:00:22
    representacionais né e o que que isso
  • 00:00:24
    significa na prática na prática Isso é
  • 00:00:27
    uma maneira de construir uma pi uma
  • 00:00:29
    maneira de você estruturar quais são os
  • 00:00:32
    recursos que aquela piu utiliza E como
  • 00:00:34
    você utiliza os métodos daquela api e
  • 00:00:37
    aqui a gente tá falando essencialmente
  • 00:00:38
    já de uma de uma arquitetura cliente
  • 00:00:40
    servidor onde o http que a gente
  • 00:00:43
    explicou no outro vídeo é aplicado para
  • 00:00:48
    a gente comunicar o cliente os servidor
  • 00:00:49
    e fazer as alterações que a gente
  • 00:00:51
    precisa no servidor E por que que esse
  • 00:00:53
    negócio é importante né isso é
  • 00:00:54
    importante porque é de certo modo é uma
  • 00:00:57
    maneira que a gente encontrou uma
  • 00:00:58
    umulação que a gente encontro de
  • 00:01:01
    garantir que a comunicação as apis
  • 00:01:04
    disponibilizadas por uma aplicação né
  • 00:01:06
    Quais são as interfaces ali Elas têm uma
  • 00:01:10
    lógica consumida por trás delas que ela
  • 00:01:14
    é genérica o suficiente para ser
  • 00:01:16
    reutilizada várias vezes e o que que a
  • 00:01:19
    gente quer dizer com isso né Então vamos
  • 00:01:21
    pensar lá numa aplicação de conta
  • 00:01:23
    corrente eu posso criar conta depois eu
  • 00:01:26
    posso recuperar os dados da conta e
  • 00:01:28
    depois eu posso recuperar os Extratos da
  • 00:01:30
    conta ou né
  • 00:01:32
    a composição né do saldo extrato da
  • 00:01:35
    conta
  • 00:01:37
    posso fazer uma transferência para
  • 00:01:39
    recuperar os dados de uma transferência
  • 00:01:41
    e assim vai
  • 00:01:42
    quando você tá fazendo aplicação
  • 00:01:45
    naturalmente você precisa muitas vezes
  • 00:01:47
    dos dados de algumas maneiras
  • 00:01:49
    ligeiramente diferentes isso acaba
  • 00:01:51
    fazendo vamos falar que eu tivesse uma
  • 00:01:53
    função que chamasse o dado lá da minha
  • 00:01:55
    aplicação então recupera o extrato da
  • 00:01:57
    conta agora recupera status da conta é
  • 00:02:00
    dia a dia recupera status da conta
  • 00:02:02
    último mês se você começa a construir
  • 00:02:05
    várias vezes essa mesma função de
  • 00:02:07
    recuperação de extrato da conta que
  • 00:02:10
    acontece que você acaba tendo várias
  • 00:02:12
    vezes o mesmo código e isso significa
  • 00:02:14
    que daqui a pouco você vai ter vários
  • 00:02:16
    recuperes da conta e você nem mais sabe
  • 00:02:18
    qual é a diferença entre eles você
  • 00:02:20
    Obviamente você vai poder abrir o código
  • 00:02:21
    e olhar a diferença entre eles mas para
  • 00:02:24
    quem bate o olho de fora não é um
  • 00:02:26
    negócio que você sabe qual é a diferença
  • 00:02:27
    entre eles e isso não é ideal como eu
  • 00:02:30
    vou falar depois em qualidade de código
  • 00:02:32
    A ideia é que o nome das coisas
  • 00:02:35
    represente com tanta qualidade que
  • 00:02:37
    aquilo está representando que quem bate
  • 00:02:40
    o olho naquele nome já tem toda a
  • 00:02:42
    informação de como aquilo funciona então
  • 00:02:44
    o resto vem nessa linha de uma pessoa
  • 00:02:47
    que já entende minimamente como é o
  • 00:02:49
    conceito S Ele olha para uma pirest E aí
  • 00:02:52
    você pode fazer ap de várias maneiras né
  • 00:02:54
    mas a gente tenta fazer o máximo
  • 00:02:56
    possível
  • 00:02:58
    e já entende exatamente por trás daquilo
  • 00:03:01
    lá então no caso por exemplo de um de
  • 00:03:04
    uma conta poderia dar um
  • 00:03:07
    recuperar uma conta ou eu posso
  • 00:03:09
    recuperar a conta com o saldo são duas
  • 00:03:11
    funções diferentes mas isso não faz
  • 00:03:13
    muito sentido eu poderia simplesmente
  • 00:03:14
    recuperar a conta e dentro dos das
  • 00:03:18
    propriedades que a conta tem eu tenho lá
  • 00:03:20
    dentro o saldo como isso traduz em West
  • 00:03:22
    né West essencialmente significa que
  • 00:03:25
    você opera com os métodos http no
  • 00:03:28
    significado que eles têm Originalmente
  • 00:03:30
    então eu tô falando aqui de get em um
  • 00:03:32
    recurso post em um recurso no
  • 00:03:35
    recurso Pet um recurso delite um recurso
  • 00:03:38
    é e usar recursos muito claros e quando
  • 00:03:43
    eu tô falando de recurso é a ideia de
  • 00:03:44
    que existe realmente uma entidade dentro
  • 00:03:46
    do banco de dados sobre a qual você vai
  • 00:03:49
    operar Então nesse caso que a gente tem
  • 00:03:51
    de exemplo agora é a conta então vou dar
  • 00:03:53
    um post um recurso barracout e isso vai
  • 00:03:56
    efetivamente criar a conta lá do meu
  • 00:03:59
    banco do meu banco de dados e nesse no
  • 00:04:02
    Vale desse post eu botei ali as
  • 00:04:03
    propriedades da conta então também sei
  • 00:04:05
    lá o nome do correntista do CPF do
  • 00:04:07
    correntista
  • 00:04:09
    se aquilo é uma conta corrente se eu
  • 00:04:11
    tenho um limite de conta alguma coisa
  • 00:04:13
    assim então eu dou um post em barra
  • 00:04:15
    counts aqui na QI isso não é apesar de A
  • 00:04:19
    grande maioria das apis
  • 00:04:21
    utilizarem Jason como a maneira de ser
  • 00:04:26
    realizar o dado que vai no Bari de
  • 00:04:27
    encodar o dado que vai no Bari Isso não
  • 00:04:30
    é um requisito West mas a gente aqui usa
  • 00:04:32
    Jason no Bari como uma maneira de
  • 00:04:34
    representar um cão um dado que é enviado
  • 00:04:37
    por servidor então é post em barracaute
  • 00:04:39
    no bar e ver esses campos chegando lá do
  • 00:04:42
    Servidor armazena isso no banco de dados
  • 00:04:44
    e retorna para o cliente um 200 falando
  • 00:04:46
    ok deu tudo certo e a sua conta foi
  • 00:04:49
    criada no limite eu posso retornar ali
  • 00:04:51
    por exemplo um identificador da conta
  • 00:04:53
    então uma count que é muito importante
  • 00:04:56
    para pessoa nas próximas vezes que for
  • 00:04:58
    operar sobre aquela conta ela tem uma
  • 00:05:01
    identificador daquela conta então daria
  • 00:05:02
    um 200 e no baile da requisição
  • 00:05:05
    que tem pontos que essa calda aqui é uma
  • 00:05:08
    chave da conta que por sinal a gente usa
  • 00:05:11
    aqui uma coisa chamada guide para
  • 00:05:13
    identificar cada conta retornou essa
  • 00:05:15
    conta eu posso querer por exemplo
  • 00:05:17
    recuperar aquela conta como seria para
  • 00:05:20
    recuperar aquela conta seria Barra
  • 00:05:21
    seghetti em
  • 00:05:24
    barracoutski ou seja nesse momento se
  • 00:05:28
    criou na cabeça de quem tá usando e no
  • 00:05:31
    conceito do software
  • 00:05:33
    uma entidade conta dentro do Servidor
  • 00:05:36
    que é identificada por aquela counts
  • 00:05:38
    Skin então tô fazendo um get naquele
  • 00:05:39
    recurso que aquela Country E aí ele vai
  • 00:05:41
    simplesmente batendo no banco de dados e
  • 00:05:44
    já recuperar na maneira como a gente
  • 00:05:46
    representa mesmo no post é importante
  • 00:05:49
    manter essa consistência em como você
  • 00:05:51
    representa uma entidade ao longo da sua
  • 00:05:53
    fi vai recuperar os dados e vai entregar
  • 00:05:56
    um Jason lá que vai ter o nome do
  • 00:05:58
    correntista o documento do correntista e
  • 00:06:01
    assim vai como um extra eu posso ter ali
  • 00:06:03
    um campo chamado balance que é o saldo
  • 00:06:06
    daquela ou seja vou dar um get naquela
  • 00:06:08
    conta e vai retornar também o saldo
  • 00:06:11
    inicialmente Zerado esse negócio vai
  • 00:06:13
    mais longe eu posso dar um get em barra
  • 00:06:15
    acalmes isso vai me recuperar a lista de
  • 00:06:19
    contas isso é relativamente um padrão
  • 00:06:22
    resto E aí isso vai me recuperar por
  • 00:06:24
    exemplo para fazer uma listagem de tela
  • 00:06:26
    para mostrar todas as contas que alguém
  • 00:06:28
    tem vamos falar que eu vou aplicar agora
  • 00:06:30
    um filtro em quais contas eu quero
  • 00:06:32
    recuperar eu quero recuperar só as
  • 00:06:33
    contas cujo número do documento CPF do
  • 00:06:36
    correntista é x eu vou colocar
  • 00:06:39
    cat/cauts ponto de interrogação doc me
  • 00:06:43
    number igual ao número do documento o
  • 00:06:45
    que que isso significa esse depois do
  • 00:06:48
    ponto de interrogação que você já deve
  • 00:06:49
    ter visto em páginas da web tudo que vem
  • 00:06:52
    depois do ponto de interrogação é o que
  • 00:06:53
    a gente chama de ou seja um parâmetro de
  • 00:06:56
    busca e aí eu tô passando docker igual a
  • 00:07:01
    x eu tô falando que eu quero aplicar um
  • 00:07:03
    filtro onde o número do documento seja
  • 00:07:05
    igual a x E aí que eu fizer isso vai
  • 00:07:07
    chegar no servidor e ele vai entender
  • 00:07:08
    Ele tá tentando recuperar todos os
  • 00:07:11
    recursos de conta aplicando esse filtro
  • 00:07:13
    documento e aí ele vai me retornar todas
  • 00:07:16
    as contas que tenha que respeitam aquele
  • 00:07:18
    filtro isso para uma criação de conta e
  • 00:07:21
    tal muito simples e aí a gente pode ir
  • 00:07:23
    para os outros conceitos dessa pi de
  • 00:07:24
    conta então post em uma transação
  • 00:07:29
    eu vou ter muitos dados
  • 00:07:32
    eu entendo que essa transação ela é uma
  • 00:07:35
    entidade que opera dentro de uma
  • 00:07:37
    determinada conta Ela não é uma entidade
  • 00:07:39
    solta a trans Action está dentro de uma
  • 00:07:41
    conta como que isso pode ser feita eu
  • 00:07:43
    posso ter um post em barracão
  • 00:07:47
    ou seja Estou criando um recurso de
  • 00:07:50
    transação dentro de uma conta
  • 00:07:52
    identificada por aquela
  • 00:07:54
    quando eu faço isso eu vou passar no
  • 00:07:57
    baile da requisição os parâmetros
  • 00:07:59
    daquela conta então o valor a conta de
  • 00:08:01
    destino e assim vai e isso vai chegar no
  • 00:08:04
    servidor e eu vou executar Ok dei um
  • 00:08:07
    post aquela transação o servidor vai me
  • 00:08:09
    devolver um 200 Se der tudo certo e
  • 00:08:11
    possivelmente vai me devolver a trans
  • 00:08:13
    Action que para caso um dia eu queira
  • 00:08:15
    recuperar os dados daquela transação eu
  • 00:08:18
    consigo recuperar a partir dessa trans
  • 00:08:20
    Action que como eu posso recuperar
  • 00:08:23
    get/caute que barra trans Action aqui
  • 00:08:26
    essa é uma possibilidade e
  • 00:08:29
    implicitamente reparem que eu tô
  • 00:08:32
    ditando que aquela trans Action que está
  • 00:08:35
    necessariamente dentro daquela conta ou
  • 00:08:37
    eu poderia dar um bar que um Action
  • 00:08:39
    barra trans Action que sem citar são
  • 00:08:42
    dois caminhos diferentes nesse ponto
  • 00:08:44
    fica meio amplo aí de como seria mais
  • 00:08:46
    resto mas os caminhos se interlaçam
  • 00:08:50
    quando eu quero falar por exemplo
  • 00:08:52
    Imagine que tem uma camada de
  • 00:08:53
    autorização em cima e tô querendo saber
  • 00:08:55
    se aquela pessoa pode ver aquela
  • 00:08:57
    transação antes disso eu preciso saber
  • 00:08:59
    se aquela pessoa pode ver aquela conta
  • 00:09:01
    então a gente começa ali a trabalhar um
  • 00:09:03
    pouquinho em outros aspectos de
  • 00:09:04
    arquitetura de de autorização que é um
  • 00:09:07
    negócio super importante por último Eu
  • 00:09:09
    quero puxar o extrato né então o que que
  • 00:09:13
    eu vou fazer barra o extrato ele pode em
  • 00:09:16
    Essência se ele é em Essência dentro da
  • 00:09:19
    conta ele é uma propriedade da conta mas
  • 00:09:21
    eu posso entender ele também como um
  • 00:09:23
    recurso eu posso tanto bater em barra
  • 00:09:26
    counts/coutsky e dentro da conta eu
  • 00:09:29
    tenho um campo que é Statement e lá
  • 00:09:31
    dentro ter todas as transações que
  • 00:09:32
    afetaram aquela conta ou posso ter um
  • 00:09:35
    barracout barra count que barra state eu
  • 00:09:38
    dar um get nisso E aí vai me voltar
  • 00:09:40
    diretamente o extrato repara que nenhuma
  • 00:09:42
    das duas deixa de ser resto porque ambas
  • 00:09:45
    eu tô usando os métodos http para operar
  • 00:09:48
    sobre recursos que são representados
  • 00:09:49
    dentro do Servidor Então
  • 00:09:52
    ela é essencialmente
  • 00:09:54
    isso segue também para pet para
  • 00:09:58
    então o pet quer dizer que eu estou
  • 00:10:00
    atualizando um campo da county para que
  • 00:10:03
    que eu vou usar o pet Então vou dar um
  • 00:10:05
    pet em Barra count/couts ou seja estou
  • 00:10:08
    atualizando um campo da conta que eu
  • 00:10:10
    estou querendo atualizar e eu tô
  • 00:10:12
    atualizando lá no Vale da requisição vou
  • 00:10:14
    mandar o nome do correntista E aí eu vou
  • 00:10:15
    atualizar o nome do correntista e esse
  • 00:10:18
    vai me perguntar qual a diferença entre
  • 00:10:19
    Pet e a diferença entre Pet e é
  • 00:10:23
    que o pet atualiza um campo e o em
  • 00:10:26
    tese ele substitui o recurso que está no
  • 00:10:29
    servidor isso não é muito respeitado no
  • 00:10:32
    geral em termos de West mas em Essência
  • 00:10:35
    deveria ser isso
  • 00:10:37
    então voltando lá essencialmente Oeste
  • 00:10:41
    São algumas regras de boas práticas tá
  • 00:10:44
    não é como soube que é um protocolo
  • 00:10:47
    muito bem definido o resto é um pouco
  • 00:10:49
    mais solto que é uma arquitetura que a
  • 00:10:51
    gente se a gente respeitar ela no geral
  • 00:10:54
    as nossas apeis vão ter menos endpoints
  • 00:10:56
    ou seja vou ter menos chamada de IPI eu
  • 00:10:59
    vou ter um código mais simples porque
  • 00:11:01
    uma única vez eu vou fazer a recuperação
  • 00:11:03
    dos dados da conta por exemplo é e para
  • 00:11:07
    o meu cliente talvez essa seja a coisa
  • 00:11:09
    mais importante é ele só vai bater o
  • 00:11:12
    olho na minha pi e rapidamente vai
  • 00:11:14
    entender como eu opero porque esse já é
  • 00:11:17
    um padrão também bastante
  • 00:11:19
    disseminado na internet em geral e que
  • 00:11:23
    com o advento do rest mas o Jason fez
  • 00:11:26
    essa tornarem muito simples Então esse é
  • 00:11:29
    uma das grandes vantagens do resto Então
  • 00:11:31
    é isso na próxima conversa aí vou falar
  • 00:11:34
    um pouquinho de resto super frente
  • 00:11:37
    porque aparece muito isso aí e é uma
  • 00:11:39
    coisa que mexe muito com aspecto
  • 00:11:41
    Cultural de como a gente faz software
  • 00:11:43
    então vou falar um pouquinho de West
  • 00:11:44
    versus
Tags
  • REST
  • API
  • HTTP
  • client-server
  • JSON
  • arhitectură
  • resurse
  • metode HTTP
  • autentificare
  • autorizare