{"id":51415,"date":"2022-07-22T05:20:58","date_gmt":"2022-07-22T08:20:58","guid":{"rendered":"https:\/\/kinsta.com\/pt\/?p=51415&#038;post_type=knowledgebase&#038;preview_id=51415"},"modified":"2025-10-01T17:03:43","modified_gmt":"2025-10-01T20:03:43","slug":"nestjs","status":"publish","type":"post","link":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/","title":{"rendered":"O Que \u00e9 Nest.js? Tudo Sobre Esse Leve Framework JavaScript"},"content":{"rendered":"<p>Gerenciar um aplicativo de grande escala pode ser tedioso, especialmente quando constru\u00eddo sem uma estrutura bem planejada e uma estrat\u00e9gia rigorosa de organiza\u00e7\u00e3o de c\u00f3digo. Isso pode levar a desastres durante a manuten\u00e7\u00e3o e deve ser evitado a todo custo. Esse desastre \u00e9 causado por mudan\u00e7as feitas na base de c\u00f3digo e novos recursos \u00e0 medida que o projeto cresce em sua base de usu\u00e1rios.<\/p>\n<p>J\u00e1 o Nest.js foi criado para resolver problemas de estrutura\u00e7\u00e3o e organiza\u00e7\u00e3o de c\u00f3digo. Ele combina abordagens modernas e modulares com princ\u00edpios de <a href=\"https:\/\/kinsta.com\/pt\/engenharia-estatistica-de-software\/\">engenharia de software<\/a>.<\/p>\n\n<p>Nest.js utiliza TypeScript para verifica\u00e7\u00e3o de tipos e oferece uma arquitetura de software pronta para construir e implantar aplicativos test\u00e1veis, escal\u00e1veis, com baixo acoplamento e f\u00e1cil manuten\u00e7\u00e3o.<\/p>\n<p>Neste artigo, vamos explorar o Nest.js e o que voc\u00ea pode construir com ele. Tamb\u00e9m vamos falar sobre os pontos positivos e negativos do framework para que voc\u00ea entenda por que as empresas o escolhem em rela\u00e7\u00e3o a outros frameworks do Node.js. E, por fim, vamos mostrar como criar uma API de lista de tarefas com o Nest.js.<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc><\/p>\n<h2>O que \u00e9 Nest.js?<\/h2>\n<p>O Nest.js \u00e9 um dos <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-node-js\/\">frameworks Node.js<\/a> de crescimento mais r\u00e1pido para construir aplicativos backend eficientes, escal\u00e1veis e de n\u00edvel empresarial usando o Node.js. Ele \u00e9 conhecido por produzir aplicativos altamente test\u00e1veis, de f\u00e1cil manuten\u00e7\u00e3o e escal\u00e1veis utilizando <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-javascript\/\">JavaScript<\/a> e TypeScript modernos.<\/p>\n<figure id=\"attachment_127249\" aria-describedby=\"caption-attachment-127249\" style=\"width: 1400px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-127249 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/nest-js-logo.png\" alt=\"A logo oficial do Nest.js\" width=\"1400\" height=\"1050\"><figcaption id=\"caption-attachment-127249\" class=\"wp-caption-text\">A logo oficial do Nest.js. (Fonte da imagem: <a href=\"https:\/\/www.behance.net\/gallery\/74182713\/Nest-JS-The-official-logo\" target=\"_blank\" rel=\"noopener noreferrer\">Behance<\/a>)<\/figcaption><\/figure>\n<p>Com mais de 46,6k estrelas e 5,4k forks no <a href=\"https:\/\/kinsta.com\/pt\/blog\/que-github\/\">GitHub<\/a>, e uma contagem semanal de downloads de at\u00e9 700.000, o framework \u00e9 uma escolha popular para desenvolver seu projeto backend com Node.js.<\/p>\n<p>Nest.js \u00e9 a solu\u00e7\u00e3o perfeita para o seu pr\u00f3ximo projeto se voc\u00ea precisa construir um aplicativo escal\u00e1vel, de f\u00e1cil manuten\u00e7\u00e3o e de n\u00edvel empresarial.<\/p>\n<p>Na pr\u00f3xima se\u00e7\u00e3o, vamos explorar para que ele \u00e9 usado e as diferentes empresas que utilizam o framework em produ\u00e7\u00e3o.<\/p>\n<h2>Para que o Nest.js \u00e9 usado?<\/h2>\n<p>O Nest.js \u00e9 um framework do lado do servidor Node.js excelente para construir aplicativos backend altamente test\u00e1veis e de f\u00e1cil manuten\u00e7\u00e3o. Voc\u00ea pode criar <a href=\"https:\/\/kinsta.com\/pt\/blog\/aplicativos-node-js\/\" rel=\"noopener\">in\u00fameros tipos de aplicativos com o Nest.js<\/a>; voc\u00ea est\u00e1 limitado apenas pelas funcionalidades que seus aplicativos necessitam.<\/p>\n<p>Como o framework utiliza TypeScript, o Nest.js \u00e9 especialmente popular entre equipes que desejam aproveitar o poder de verifica\u00e7\u00e3o de tipos do TypeScript. Al\u00e9m disso, \u00e9 simples de aprender e dominar, com uma poderosa interface de linha de comando (CLI) para impulsionar a produtividade e facilitar o desenvolvimento. Essa CLI poderosa facilita o in\u00edcio de qualquer projeto server-side e acompanhar sua conclus\u00e3o.<\/p>\n<p>Al\u00e9m disso, Nest.js mant\u00e9m documenta\u00e7\u00e3o detalhada, e sua comunidade de desenvolvedores e colaboradores \u00e9 muito ativa e pronta para responder \u00e0s quest\u00f5es em tempo real.<\/p>\n<p>Esses motivos facilitam entender por que tantas empresas est\u00e3o migrando para o Nest.js em vez de outros frameworks. Abaixo est\u00e1 uma lista de algumas marcas populares que utilizam o framework em produ\u00e7\u00e3o.<\/p>\n<h3>Roche<\/h3>\n<p>A Roche \u00e9 uma empresa multinacional de sa\u00fade que opera sob duas divis\u00f5es, farmac\u00eautica e diagn\u00f3stica. Esta empresa americana de biotecnologia usa a estrutura Nest.js em seu site principal para atender seus pacientes de forma confi\u00e1vel e para expandir ainda mais seus servi\u00e7os.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/roche.png\" alt=\"A p\u00e1gina oficial da Roche\" width=\"1600\" height=\"795\"><figcaption class=\"wp-caption-text\">A p\u00e1gina oficial da Roche<\/figcaption><\/figure>\n<h3>Adidas<\/h3>\n<p>Adidas \u00e9 a maior fabricante de roupas esportivas da Europa e a segunda maior do mundo. A Adidas \u00e9 conhecida por projetar e fabricar cal\u00e7ados, roupas e acess\u00f3rios. Seu alcance global e popularidade s\u00e3o o motivo pelo qual eles decidiram usar a estrutura altamente escal\u00e1vel do Nest.js para construir aplicativos em larga escala e eficientes para sua marca.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/adidas.png\" alt=\"A p\u00e1gina inicial oficial da Adidas\" width=\"1600\" height=\"797\"><figcaption class=\"wp-caption-text\">A p\u00e1gina inicial oficial da Adidas<\/figcaption><\/figure>\n<h3>Decathlon<\/h3>\n<p>Decathlon \u00e9 um varejista de produtos esportivos com mais de 1.500 lojas em 57 pa\u00edses. A Decathlon escolheu a Nest.js como <a href=\"https:\/\/kinsta.com\/pt\/blog\/backend-vs-frontend\/\">backend<\/a> para o seu aplicativo web, visando escalabilidade e manuten\u00e7\u00e3o da sua base de c\u00f3digos.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/decathlon.png\" alt=\"A p\u00e1gina inicial oficial do Decathlon\" width=\"1600\" height=\"771\"><figcaption class=\"wp-caption-text\">A p\u00e1gina inicial oficial do Decathlon<\/figcaption><\/figure>\n<p>Voc\u00ea pode encontrar uma lista de empresas, projetos e ferramentas adicionais constru\u00eddas com o Nest.js no <a href=\"https:\/\/github.com\/juliandavidmr\/awesome-nestjs#projects-using-nestjs\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub<\/a>.<\/p>\n<p>A seguir, discutiremos por que voc\u00ea e sua empresa devem escolher o Nest.js para o seu pr\u00f3ximo projeto, fornecendo insights sobre por que outras pessoas j\u00e1 usam o framework e seus benef\u00edcios.<\/p>\n<h2>Por que escolher o Nest.js<\/h2>\n<p>A escolha de um framework depende do tipo de aplicativo que voc\u00ea est\u00e1 desenvolvendo, j\u00e1 que diferentes aplicativos requerem um conjunto diferente de ferramentas.<\/p>\n<p>Aqui, listaremos diferentes raz\u00f5es para selecionar o Nest.js como sua framework Node.js para atualizar ou construir seu pr\u00f3ximo projeto.<\/p>\n<ul>\n<li>F\u00e1cil aprendizado e dom\u00ednio: O Nest.js \u00e9 f\u00e1cil de aprender e dominar, especialmente para desenvolvedores familiarizados com o mundo do <a href=\"https:\/\/kinsta.com\/pt\/blog\/php-vs-angular\/\">Angular<\/a>. Isso permite um processo de desenvolvimento r\u00e1pido e eficiente, pois os membros da equipe podem se adaptar facilmente a novos princ\u00edpios e estruturas de desenvolvimento.<\/li>\n<li>Excelente estrutura arquitet\u00f4nica: A framework possui uma excelente estrutura arquitet\u00f4nica para aplicativos empresariais, pronta para uso. Isso facilita a constru\u00e7\u00e3o de aplicativos empresariais altamente escal\u00e1veis e de f\u00e1cil manuten\u00e7\u00e3o.<\/li>\n<li>Ampla variedade de op\u00e7\u00f5es de constru\u00e7\u00e3o: Com o Nest.js, voc\u00ea pode construir servi\u00e7os backend que v\u00e3o desde APIs RESTful, aplicativos GraphQL, aplicativos MVC, WebSockets, CLI e <a href=\"https:\/\/kinsta.com\/pt\/blog\/wordpress-cron-job\/\">Cron jobs<\/a> com facilidade. Algumas arquiteturas padr\u00e3o j\u00e1 est\u00e3o incorporadas no framework do Nest.js.<\/li>\n<li>Tecnologias modernas e testes unit\u00e1rios: O Nest.js utiliza tecnologias modernas como TypeScript, padr\u00f5es arquiteturais robustos, excelente documenta\u00e7\u00e3o e facilita os testes unit\u00e1rios. Isso permite a constru\u00e7\u00e3o de aplicativos empresariais escal\u00e1veis e de f\u00e1cil manuten\u00e7\u00e3o.<\/li>\n<li>Suporte para constru\u00e7\u00e3o de grandes aplicativos: O Nest.js foi criado para construir aplicativos monol\u00edticos e <a href=\"https:\/\/kinsta.com\/pt\/blog\/microservicos-vs-api\/\">microsservi\u00e7os<\/a> de grande escala, em que a arquitetura j\u00e1 \u00e9 tratada e voc\u00ea s\u00f3 precisa desenvolver a l\u00f3gica do seu neg\u00f3cio.<\/li>\n<li>Suporte \u00e0 comunidade e m\u00f3dulos: O Nest.js oferece suporte a uma grande comunidade e a diversos m\u00f3dulos desenvolvidos pela comunidade. Voc\u00ea pode escolher entre v\u00e1rios m\u00f3dulos suportados pelo Nest.js, como TypeORM, Mongoose, GraphQL, logging, valida\u00e7\u00e3o, cache, WebSockets e muito mais, para construir qualquer recurso espec\u00edfico que voc\u00ea precise.<\/li>\n<\/ul>\n<p>Agora, vamos explorar os pr\u00f3s e os contras do Nest.js. Isso ajudar\u00e1 a solidificar sua decis\u00e3o de adotar o framework, \u00e0 medida que discutimos os aspectos positivos e negativos.<\/p>\n<h2>Pr\u00f3s e contras do Nest.js<\/h2>\n<p>Aqui, vamos enumerar os pr\u00f3s e contras do Nest.js para uma melhor compreens\u00e3o de por que ele \u00e9 um framework t\u00e3o popular no ecossistema do Node.js.<\/p>\n<h3>Os pr\u00f3s<\/h3>\n<p>Alguns dos benef\u00edcios de usar o Nest.js incluem:<\/p>\n<ul>\n<li><strong>Poderoso, mas f\u00e1cil de usar:<\/strong> O framework \u00e9 amig\u00e1vel para os desenvolvedores trabalharem, a ponto de mesmo os recursos mais complexos e poderosos serem f\u00e1ceis de usar. A equipe do Nest.js projetou o framework para que os desenvolvedores possam come\u00e7ar rapidamente e se concentrar exclusivamente na escrita da l\u00f3gica de neg\u00f3cios, enquanto o framework cuida de outros aspectos importantes do desenvolvimento, <a href=\"https:\/\/kinsta.com\/pt\/blog\/verificacao-de-seguranca-do-site\/\" rel=\"noopener\">como seguran\u00e7a<\/a>.<\/li>\n<li><strong>Sintaxe de estilo Angular (backend):<\/strong> <a href=\"https:\/\/kinsta.com\/pt\/blog\/angular-vs-react\/\" rel=\"noopener\">Angular \u00e9 um framework de frontend muito popular<\/a> com uma concentra\u00e7\u00e3o em arquitetura e estrutura\u00e7\u00e3o. Nest.js atua como Angular para o backend, pois\u00a0utiliza o estilo e a sintaxe do Angular para ajudar a estruturar o seu projeto empresarial.<\/li>\n<li><strong>TypeScript:<\/strong> O Nest.js oferece suporte ao TypeScript logo de in\u00edcio, resolvendo problemas de desempenho e permitindo escrever rapidamente aplicativos de f\u00e1cil manuten\u00e7\u00e3o, fornecendo erros e avisos de compila\u00e7\u00e3o. O TypeScript \u00e9 bem integrado ao VSCode, proporcionando um ambiente de desenvolvimento acess\u00edvel.<\/li>\n<li><strong>Documenta\u00e7\u00e3o completa:<\/strong> O Nest.js apresenta uma das melhores documenta\u00e7\u00f5es para qualquer framework, o que \u00e9 muito f\u00e1cil de entender. Isso economiza tempo de depura\u00e7\u00e3o, permitindo que voc\u00ea consulte rapidamente a documenta\u00e7\u00e3o e encontre a solu\u00e7\u00e3o para o seu problema.<\/li>\n<li><strong>Boa arquitetura e r\u00e1pido desenvolvimento:<\/strong> O Nest.js economiza tempo ao construir seu aplicativo, seja criando seu primeiro MVP ou o aplicativo real, pois ele oferece uma estrutura e arquitetura s\u00f3lidas para come\u00e7ar, melhorando assim seus processos de desenvolvimento.<\/li>\n<\/ul>\n<h3>Os contras<\/h3>\n<p>Existe um ditado famoso que diz: &#8220;Toda vantagem tem suas desvantagens&#8221; &#8211; e o Nest.js n\u00e3o \u00e9 exce\u00e7\u00e3o. Ent\u00e3o, vamos explorar as desvantagens do Nest.js.<\/p>\n<ul>\n<li><strong>Dif\u00edcil para iniciantes:<\/strong> O Nest.js pode ser um pouco complicado para desenvolvedores iniciantes que n\u00e3o t\u00eam experi\u00eancia com Angular. Al\u00e9m disso, como nem todo desenvolvedor JavaScript utiliza TypeScript, o framework pode ser desafiador para esses desenvolvedores tamb\u00e9m. No entanto, assim como qualquer outra tecnologia, ele requer tempo e pr\u00e1tica para dominar.<\/li>\n<li><strong>Depura\u00e7\u00e3o trabalhosa:<\/strong> Por mais que o TypeScript tenha suas vantagens, ele tamb\u00e9m pode trazer algumas dificuldades na depura\u00e7\u00e3o, especialmente para desenvolvedores menos experientes no mundo do TypeScript.<\/li>\n<\/ul>\n<p>A\u00ed est\u00e3o os pr\u00f3s e contras do Nest.js e como eles podem influenciar sua decis\u00e3o na escolha deste framework.<\/p>\n<p>A seguir, vamos praticar a constru\u00e7\u00e3o de uma API RESTful com o Nest.js para solidificar o que aprendemos at\u00e9 agora. Continue lendo para aprender como desenvolver uma API de lista de tarefas que permitir\u00e1 aos usu\u00e1rios criar e gerenciar suas pr\u00f3prias listas de tarefas.<\/p>\n<h2>Construa sua primeira API RESTful com o Nest.js<\/h2>\n<p>\u00c9 hora de praticar tudo o que aprendemos sobre o Nest.js, construindo nossa primeira API RESTful para demonstrar o poder e a simplicidade que ele oferece.<\/p>\n<p>Come\u00e7aremos configurando o framework e instalando todas as ferramentas necess\u00e1rias para coloc\u00e1-lo em funcionamento.<\/p>\n<h3>1. Configurando o Nest.js<\/h3>\n<p>Primeiro, instalamos o Nest CLI para criar novos projetos com este comando:<\/p>\n<pre><code class=\"language-bash\">npm i -g @nestjs\/cli<\/code><\/pre>\n<p>Depois disso, crie um novo projeto usando este comando abaixo:<\/p>\n<pre><code class=\"language-bash\">nest new nest-todo-api\ncd nest-todo-api\nnpm run start:dev<\/code><\/pre>\n<p>Agora que temos o Nest CLI instalado e nosso novo projeto criado com sucesso, vamos construir nossa API.<\/p>\n<p>Abra o projeto em um editor de c\u00f3digo da sua escolha. Se voc\u00ea acessar <code>localhost:3000<\/code>, dever\u00e1 ser recebido com uma mensagem de boas-vindas mostrando que tudo funciona corretamente.<\/p>\n<p>A seguir, vamos configurar um <a href=\"https:\/\/kinsta.com\/pt\/blog\/o-que-e-mongodb\/\">banco de dados MongoDB<\/a> para conectar e gerenciar nossos dados de tarefas em todo o projeto.<\/p>\n<p>Antes de prosseguirmos, vamos gerar todos os arquivos que precisaremos para criar a API com os seguintes comandos:<\/p>\n<pre><code class=\"language-bash\">nest generate module todos\nnest generate controller todos\nnest generate service todos<\/code><\/pre>\n<h3>2. Configurando o MongoDB<\/h3>\n<p>A seguir, vamos instalar e configurar o <a href=\"https:\/\/kinsta.com\/pt\/blog\/mongodb-vs-mysql\/\">MongoDB<\/a> para funcionar com o projeto que criamos anteriormente.<\/p>\n<p>Ap\u00f3s instalar o MongoDB em sua m\u00e1quina local, execute o seguinte comando para instalar a biblioteca Mongoose em nosso projeto rec\u00e9m-criado:<\/p>\n<pre><code class=\"language-bash\">npm install --save @nestjs\/mongoose mongoose<\/code><\/pre>\n<p>Isso \u00e9 tudo que voc\u00ea precisa fazer.<\/p>\n<p>Em seguida, vamos gerar os arquivos e importar o Mongoose para se comunicar com o projeto e o MongoDB.<\/p>\n<p>Vamos importar o Mongoose em nosso arquivo de m\u00f3dulo do aplicativo antes de gerar os demais arquivos necess\u00e1rios:<\/p>\n<pre><code class=\"language-js\">import { Module } from '@nestjs\/common';\nimport { AppController } from '.\/app.controller';\nimport { AppService } from '.\/app.service';\nimport { MongooseModule } from '@nestjs\/mongoose';\nimport { TodosModule } from '.\/todos\/todos.module';\n\n@Module({\n  imports: [MongooseModule.forRoot('mongodb:\/\/localhost\/todos), TodosModule],\n  controllers: [AppController],\n  providers: [AppService],\n})\nexport class AppModule {}<\/code><\/pre>\n<h4>3. Construindo o Esquema<\/h4>\n<p>A seguir, vamos construir o esquema do banco de dados para o nosso banco de dados. Este esquema ir\u00e1 especificar como os dados ser\u00e3o representados em nosso banco de dados.<\/p>\n<p>Vamos defini-lo em nosso arquivo <strong>todos.schema.ts<\/strong>:<\/p>\n<pre><code class=\"language-ts\">import * as mongoose from 'mongoose';\nexport const ItemSchema = new mongoose.Schema({\n  title: String,\n  is_completed: Boolean,\n  description: String,\n});<\/code><\/pre>\n<h4>4. Definindo interfaces<\/h4>\n<p>Agora, vamos criar uma interface para verifica\u00e7\u00e3o de tipos.<\/p>\n<p>Vamos defini-la em nosso arquivo <strong>interfaces\/todo.interface.ts<\/strong>:<\/p>\n<pre><code class=\"language-ts\">import { Document } from 'mongoose';\nexport interface Item extends Document {\n  id?: string;\n  title: string;\n  description?: string;\n  is_completed: boolean;\n}<\/code><\/pre>\n<h4>5. Criando o DTO<\/h4>\n<p>Finalmente, vamos construir um DTO (Data Transfer Object) que define como os dados ser\u00e3o enviados ou passados de objeto para objeto atrav\u00e9s da rede.<\/p>\n<p>\u00c9 uma classe b\u00e1sica com a mesma propriedade do nosso esquema:<\/p>\n<pre><code class=\"language-ts\">\/\/ .\/dto\/create-todo.ts\nexport class CreateItemDto {\n  readonly title: string;\n  readonly description: string;\n  readonly is_completed: boolean;\n}<\/code><\/pre>\n<h3>6. Configurando o Model\/Service<\/h3>\n<p>O arquivo do servi\u00e7o \u00e9 respons\u00e1vel pela intera\u00e7\u00e3o e comunica\u00e7\u00e3o com o banco de dados MongoDB. Ele \u00e9 usado para criar, recuperar, atualizar e excluir registros do esquema <code>todos<\/code> que criamos anteriormente.<\/p>\n<p>Abra seu arquivo de servi\u00e7os e adicione os seguintes c\u00f3digos:<\/p>\n<pre><code class=\"language-ts\">import { Injectable } from '@nestjs\/common';\nimport { Todo } from '.\/interfaces\/todo.interface';\nimport { Model } from 'mongoose';\nimport { InjectModel } from '@nestjs\/mongoose';\nimport { CreateTodoDto } from '.\/dto\/create-todo.dto';\n\n@Injectable()\n\nexport class ItemsService {\n  constructor(@InjectModel('Todo') private readonly todoModel: Model) {}\n  async findAll(): Promise&lt;Todo[]&gt; {\n    return await this.todoModel.find();\n  }\n  async findOne(id: string): Promise {\n    return await this.todoModel.findOne({ _id: id });\n  }\n  async create(item: CreateItemDto): Promise {\n    const newTodo = new this.todoModel(item);\n    return await newTodo.save();\n  }\n  async delete(id: string): Promise {\n    return await this.todoModel.findByIdAndRemove(id);\n  }\n  async update(id: string, todo: CreateTodoDto): Promise {\n    return await this.todoModel.findByIdAndUpdate(id, todo, { new: true });\n  }\n}<\/code><\/pre>\n<p>O snippet de c\u00f3digo acima representa um aplicativo CRUD (criar, ler, atualizar, excluir) em nossa API usando o <a href=\"https:\/\/mongoosejs.com\/docs\/models.html\" target=\"_blank\" rel=\"noopener noreferrer\">modelo Mongoose<\/a> para fornecer acesso ao nosso banco de dados MongoDB subjacente.<\/p>\n<p>A seguir, criaremos nosso arquivo controlador para lidar com toda a l\u00f3gica e nos comunicarmos com o servi\u00e7o que criamos acima.<\/p>\n<h3>7. Configurando os controladores<\/h3>\n<p>O controlador \u00e9 respons\u00e1vel por lidar com as requisi\u00e7\u00f5es recebidas e enviar respostas de volta ao cliente.<\/p>\n<p>Vamos definir nosso controlador <code>Todo<\/code> e colar no seguinte snippet de c\u00f3digo:<\/p>\n<pre><code class=\"language-js\">import {\n  Controller,\n  Get,\n  Post,\n  Put,\n  Delete,\n  Body,\n  Param,\n} from '@nestjs\/common';\nimport { CreateTodoDto } from '.\/dto\/create-todo.dto';\nimport { TodosService } from '.\/todos.service';\nimport { Todo } from '.\/interfaces\/todo.interface';\n\n@Controller('items')\n\nexport class ItemsController {\n  constructor(private readonly todosService: TodosService) {}\n\n  @Get()\n  findAll(): Promise&lt;Todo[]&gt; {\n    return this.todosService.findAll();\n  }\n  \n  @Get(':id')\n  findOne(@Param('id') id): Promise {\n    return this.todosService.findOne(id);\n  }\n  \n  @Post()\n  create(@Body() createTodoDto: CreateTodoDto): Promise {\n    return this.todosService.create(createTodoDto);\n  }\n  \n  @Delete(':id')\n  delete(@Param('id') id): Promise {\n    return this.todosService.delete(id);\n  }\n  \n  @Put(':id')\n  update(@Body() updateTodoDto: CreateTodoDto, @Param('id') id): Promise {\n    return this.todosService.update(id, updateTodoDto);\n  }\n}<\/code><\/pre>\n<p>O framework usa anota\u00e7\u00f5es para lidar com muitas funcionalidades nos bastidores &#8211; por exemplo, para lidar com o sistema de roteamento do framework, fornecendo diferentes anota\u00e7\u00f5es correspondentes a cada rota (<code>@Put()<\/code>, <code>@Delete()<\/code>, <code>@Post()<\/code>, <code>@Get()<\/code>) para os m\u00e9todos Put, Delete, Post, e Get de uma API RESTful, respectivamente.<\/p>\n<h3>8. Testando a API com o Postman<\/h3>\n<p>Por fim, vamos testar nossa API rec\u00e9m-criada com o Postman. Precisamos iniciar o servidor de desenvolvimento para garantir que tudo esteja funcionando corretamente antes de implantar em um servidor de produ\u00e7\u00e3o.<\/p>\n<pre><code class=\"language-bash\">npm run start:dev<\/code><\/pre>\n<p>Voc\u00ea pode <a href=\"https:\/\/www.postman.com\/\">baixar e executar o Postman<\/a> para testar sua API RESTful.<\/p>\n<figure id=\"attachment_127252\" aria-describedby=\"caption-attachment-127252\" style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-127252 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2022\/06\/todo-nest.png\" alt=\"Resultado da lista de tarefas do Nest.js\" width=\"1600\" height=\"1078\"><figcaption id=\"caption-attachment-127252\" class=\"wp-caption-text\">Resultado da lista de tarefas do Nest.js<\/figcaption><\/figure>\n\n<h2>Resumo<\/h2>\n<p>Nest.js \u00e9 um poderoso framework Node.js e o framework TypeScript mais popular dispon\u00edvel atualmente.<\/p>\n<p>Ele fornece \u00e0 equipe de engenharia uma arquitetura de desenvolvimento padr\u00e3o e as <a href=\"https:\/\/kinsta.com\/pt\/blog\/melhores-praticas-web-design\/\">melhores pr\u00e1ticas<\/a> da ind\u00fastria. Com ele, os desenvolvedores podem abstrair processos de engenharia repetitivos para se concentrarem exclusivamente no desenvolvimento da l\u00f3gica de neg\u00f3cios.<\/p>\n<p>Essas vantagens s\u00e3o o que motivam marcas populares como Adidas, Roche e outras a utilizarem o framework em seus aplicativos empresariais de produ\u00e7\u00e3o.<\/p>\n<p>Neste artigo, estabelecemos uma base s\u00f3lida para o Nest.js e explicamos por que voc\u00ea e sua empresa devem considerar a migra\u00e7\u00e3o para ele. Al\u00e9m disso, constru\u00edmos uma API RESTful simples de lista de tarefas para demonstrar na pr\u00e1tica as incr\u00edveis capacidades do framework.<\/p>\n<p>Agora cabe a voc\u00ea decidir se o Nest.js \u00e9 o framework perfeito para voc\u00ea.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gerenciar um aplicativo de grande escala pode ser tedioso, especialmente quando constru\u00eddo sem uma estrutura bem planejada e uma estrat\u00e9gia rigorosa de organiza\u00e7\u00e3o de c\u00f3digo. Isso &#8230;<\/p>\n","protected":false},"author":193,"featured_media":51416,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[523,460,920],"topic":[977],"class_list":["post-51415","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-javascript","tag-javascript-frameworks","tag-nest-js","topic-frameworks-javascript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>O Que \u00e9 Nest.js? Tudo Sobre Esse Leve Framework JavaScript<\/title>\n<meta name=\"description\" content=\"Nest.js \u00e9 um framework JavaScript leve e poderoso, com foco na produtividade e desempenho do desenvolvedor.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"O Que \u00e9 Nest.js? Tudo Sobre Esse Leve Framework JavaScript\" \/>\n<meta property=\"og:description\" content=\"Nest.js \u00e9 um framework JavaScript leve e poderoso, com foco na produtividade e desempenho do desenvolvedor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstapt\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-07-22T08:20:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-01T20:03:43+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/nestjs.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Solomon Eseme\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Nest.js \u00e9 um framework JavaScript leve e poderoso, com foco na produtividade e desempenho do desenvolvedor.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/nestjs.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@kaperskyguru\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_pt\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Solomon Eseme\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"13 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/\"},\"author\":{\"name\":\"Solomon Eseme\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2\"},\"headline\":\"O Que \u00e9 Nest.js? Tudo Sobre Esse Leve Framework JavaScript\",\"datePublished\":\"2022-07-22T08:20:58+00:00\",\"dateModified\":\"2025-10-01T20:03:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/\"},\"wordCount\":2443,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/nestjs.jpg\",\"keywords\":[\"JavaScript\",\"JavaScript Frameworks\",\"Nest.js\"],\"inLanguage\":\"pt-PT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/\",\"url\":\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/\",\"name\":\"O Que \u00e9 Nest.js? Tudo Sobre Esse Leve Framework JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/nestjs.jpg\",\"datePublished\":\"2022-07-22T08:20:58+00:00\",\"dateModified\":\"2025-10-01T20:03:43+00:00\",\"description\":\"Nest.js \u00e9 um framework JavaScript leve e poderoso, com foco na produtividade e desempenho do desenvolvedor.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#breadcrumb\"},\"inLanguage\":\"pt-PT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/nestjs.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/nestjs.jpg\",\"width\":1460,\"height\":730,\"caption\":\"O Que \u00e9 Nest.js? Tudo Sobre Esse Leve Framework JavaScript\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/pt\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frameworks JavaScript\",\"item\":\"https:\/\/kinsta.com\/pt\/topicos\/frameworks-javascript\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"O Que \u00e9 Nest.js? Tudo Sobre Esse Leve Framework JavaScript\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/pt\/#website\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/pt\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-PT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/pt\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/pt\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstapt\/\",\"https:\/\/x.com\/kinsta_pt\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2\",\"name\":\"Solomon Eseme\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-PT\",\"@id\":\"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g\",\"caption\":\"Solomon Eseme\"},\"description\":\"I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me\",\"sameAs\":[\"https:\/\/masteringbackend.com\",\"https:\/\/linkedin.com\/in\/solomoneseme\",\"https:\/\/x.com\/kaperskyguru\"],\"url\":\"https:\/\/kinsta.com\/pt\/blog\/author\/solomoneseme\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"O Que \u00e9 Nest.js? Tudo Sobre Esse Leve Framework JavaScript","description":"Nest.js \u00e9 um framework JavaScript leve e poderoso, com foco na produtividade e desempenho do desenvolvedor.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/","og_locale":"pt_PT","og_type":"article","og_title":"O Que \u00e9 Nest.js? Tudo Sobre Esse Leve Framework JavaScript","og_description":"Nest.js \u00e9 um framework JavaScript leve e poderoso, com foco na produtividade e desempenho do desenvolvedor.","og_url":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstapt\/","article_published_time":"2022-07-22T08:20:58+00:00","article_modified_time":"2025-10-01T20:03:43+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/nestjs.jpg","type":"image\/jpeg"}],"author":"Solomon Eseme","twitter_card":"summary_large_image","twitter_description":"Nest.js \u00e9 um framework JavaScript leve e poderoso, com foco na produtividade e desempenho do desenvolvedor.","twitter_image":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/nestjs.jpg","twitter_creator":"@kaperskyguru","twitter_site":"@kinsta_pt","twitter_misc":{"Escrito por":"Solomon Eseme","Tempo estimado de leitura":"13 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/"},"author":{"name":"Solomon Eseme","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2"},"headline":"O Que \u00e9 Nest.js? Tudo Sobre Esse Leve Framework JavaScript","datePublished":"2022-07-22T08:20:58+00:00","dateModified":"2025-10-01T20:03:43+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/"},"wordCount":2443,"publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/nestjs.jpg","keywords":["JavaScript","JavaScript Frameworks","Nest.js"],"inLanguage":"pt-PT"},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/","url":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/","name":"O Que \u00e9 Nest.js? Tudo Sobre Esse Leve Framework JavaScript","isPartOf":{"@id":"https:\/\/kinsta.com\/pt\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/nestjs.jpg","datePublished":"2022-07-22T08:20:58+00:00","dateModified":"2025-10-01T20:03:43+00:00","description":"Nest.js \u00e9 um framework JavaScript leve e poderoso, com foco na produtividade e desempenho do desenvolvedor.","breadcrumb":{"@id":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/pt\/blog\/nestjs\/"]}]},{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#primaryimage","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/nestjs.jpg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2022\/07\/nestjs.jpg","width":1460,"height":730,"caption":"O Que \u00e9 Nest.js? Tudo Sobre Esse Leve Framework JavaScript"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/pt\/blog\/nestjs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/pt\/"},{"@type":"ListItem","position":2,"name":"Frameworks JavaScript","item":"https:\/\/kinsta.com\/pt\/topicos\/frameworks-javascript\/"},{"@type":"ListItem","position":3,"name":"O Que \u00e9 Nest.js? Tudo Sobre Esse Leve Framework JavaScript"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/pt\/#website","url":"https:\/\/kinsta.com\/pt\/","name":"Kinsta\u00ae","description":"Solu\u00e7\u00f5es de hospedagem Premium, r\u00e1pida e segura","publisher":{"@id":"https:\/\/kinsta.com\/pt\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/pt\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-PT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/pt\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/pt\/","logo":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/pt\/wp-content\/uploads\/sites\/3\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/pt\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstapt\/","https:\/\/x.com\/kinsta_pt","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/51c9c77fa35cf1ef9a46308358441ab2","name":"Solomon Eseme","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/kinsta.com\/pt\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1c701993f8ff8c8df2a4c5664834a4e5?s=96&d=mm&r=g","caption":"Solomon Eseme"},"description":"I am a Software Engineer and Content Creator who is geared toward building high-performing and innovative products following best practices and industry standards. I also love writing about it at Masteringbackend.com. Follow me on Twitter, LinkedIn, and About Me","sameAs":["https:\/\/masteringbackend.com","https:\/\/linkedin.com\/in\/solomoneseme","https:\/\/x.com\/kaperskyguru"],"url":"https:\/\/kinsta.com\/pt\/blog\/author\/solomoneseme\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/51415","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/users\/193"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/comments?post=51415"}],"version-history":[{"count":8,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/51415\/revisions"}],"predecessor-version":[{"id":60377,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/posts\/51415\/revisions\/60377"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/51415\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/51415\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/51415\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/51415\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/51415\/translations\/de"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/51415\/translations\/es"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/51415\/translations\/jp"},{"href":"https:\/\/kinsta.com\/pt\/wp-json\/kinsta\/v1\/posts\/51415\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media\/51416"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/media?parent=51415"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/tags?post=51415"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/pt\/wp-json\/wp\/v2\/topic?post=51415"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}