{"componentChunkName":"component---src-templates-blog-post-js","path":"/conceitos-sobre-api-rest/","result":{"data":{"site":{"siteMetadata":{"title":"Blog"}},"markdownRemark":{"id":"269d981e-39f8-53f9-a092-8f80ff963652","excerpt":"A﻿PI é o acrônimo para Application Programming Interface, e é um conjunto de regras para que duas ou mais aplicações se comuniquem. R﻿EST é o acrônimo de…","html":"<p>A﻿PI é o acrônimo para Application Programming Interface, e é um conjunto de regras para que duas ou mais aplicações se comuniquem.</p>\n<p>R﻿EST é o acrônimo de REpresentation State Transfer, e é um modelo de arquitetura que possui 6 regras:</p>\n<ul>\n<li>\n<p><strong>C﻿lient-Server</strong></p>\n<p>O﻿ client não precisa conhecer a implementação do server e o server não precisa conhecer a implementação do client. Vale dizer que o client não necessariamente é um front-end, podendo ser um back-end consumindo a API</p>\n</li>\n<li>\n<p><strong>S﻿tateless</strong></p>\n<p>O server não armazena estado, como uma sessão por exemplo. Então toda vez que uma requisição é feita é preciso que sejam enviadas todas as informações necessárias para que seja processada</p>\n</li>\n<li>\n<p><strong>C﻿ache</strong></p>\n<p>A﻿ API deve permitir armazenamento em cache. Por default as requisições GET devem ser cacheadas.</p>\n</li>\n<li>\n<p><strong>I﻿nterface uniforme</strong></p>\n<p>I﻿dentificação dos recursos, representação dos recursos como respostas em JSON por exemplo, mensagens auto-descritivas, HATEOAS (Hypertext As The Engine Of Application State) que é o uso de links das respostas, como links de paginação por exemplo.</p>\n</li>\n<li>\n<p><strong>C﻿amadas</strong></p>\n<p>C﻿amadas entre o client e o server, como um balanceamento de carga por exemplo.</p>\n</li>\n<li>\n<p><strong>C﻿ódigo sob demanda</strong></p>\n<p>É﻿ opcional. Permite que as funcionalidades do client sejam estendidas na forma de script. Então ao invés de retornar um JSON como resposta, seria retornado um código executável para o cliente implementar.</p>\n</li>\n</ul>","frontmatter":{"title":"Conceitos sobre API REST","date":"December 08, 2022","description":"Conceitos básicos sobre API REST"}},"previous":{"fields":{"slug":"/conceitos-do-node-js/"},"frontmatter":{"title":"Conceitos do Node.js"}},"next":{"fields":{"slug":"/métodos-de-requisição/"},"frontmatter":{"title":"Métodos de Requisição"}}},"pageContext":{"id":"269d981e-39f8-53f9-a092-8f80ff963652","previousPostId":"1659406f-fbdd-53dd-a496-60aeddc52151","nextPostId":"d5934ab5-0e9b-5335-a2e0-b649fc838bc6"}},"staticQueryHashes":["2841359383","3257411868"]}