Giter VIP home page Giter VIP logo

api-blog's Introduction

API BLOG

Repositório com o código JavaScript da API BLOG.

Instalação

$ npm install 

Execução

$ npm start # produção
$ npm run dev # desenvolvimento
$ npm run extract # Extração dos dados do JSON para o MongoDB

Variáveis de ambiente

Para o funcionamento da API, é necessário definir as variáveis de ambiente abaixo. Em ambiente de desenvolvimento, as mesmas podem ser atribuídas em um arquivo denominado .env na pasta raiz do projeto.

  • DB_USER: Usuário para acessar o MongoDB
  • DB_PASS: Senha para acessar o MongoDB
  • KEY_JWT: Chave para validar assinatura do JWT informado no Authorization das requisições
  • URL_MONGO: Endereço correspondente ao MongoDB (ex.: urlmongo.com:28017)
  • KEY_OMDB: Chave para consultar dados dos filmes na API OMDb (http://www.omdbapi.com/)

Extração de dados para o MongoDB

Para realizar a extração e a inserção dos dados no MongoDb, é necessário que os dados estejam nesse formato, a parte de comentários suporta N comentários na hora da inserção do post. O arquivo deve ser salvo com o nome mock.json ou mudar em /src/lib/extractData.js para o nome desejado.

{
	"title": "Um pouco sobre Jornada nas Estrelas",
	"content": "Filme que retrata a vida de XYz e sobre o universo ABC",
	"author": "Ardelis Deniske",
	"dateCreation": "2017-12-02T05:44:03Z",
	"movie": "Jornada nas estrelas",
	"comments": [{
		"author": "Leland Doughartie",
		"content": "Assiste e filme e concordo com você, foi incrível a parte do jlkop",
		"date": "2018-02-16T03:58:19Z"
	}]
}

Exemplos de requisições

Criar post para o Blog

curl -X POST \
  http://localhost:3000/post \
  -H 'authorization: chaveapi' \
  -H 'content-type: application/json' \
  -d '{
	"title": "Um pouco sobre Jornada nas Estrelas",
	"content": "Filme que retrata a vida de XYz e sobre o universo ABC",
	"author": "Ardelis Deniske",
	"dateCreation": "2017-12-02T05:44:03Z",
	"movie": "Jornada nas estrelas"
}'

Criar comentário para o post no Blog

curl -X POST \
  http://localhost:3000/comment/$post_id \
  -H 'authorization: chaveapi' \
  -H 'content-type: application/json' \
  -d '{
		"author": "Leland Doughartie",
		"content": "Assiste e filme e concordo com você, foi incrível a parte ",
		"date": "2018-02-16T03:58:19Z"
	}'

Listando todos os posts criados

curl -X GET \
  http://localhost:3000/posts \
  -H 'authorization: chaveapi' \
  -H 'cache-control: no-cache' \

Mostrando post específico

curl -X GET \
  http://localhost:3000/post/$post_id \
  -H 'authorization: chaveapi' \
  -H 'cache-control: no-cache' \

Deletando post específico

curl -X DELETE \
  http://localhost:3000/post/$post_id \
  -H 'authorization: chaveapi' \
  -H 'content-type: application/json' \

Atualizando post específico, necessário passar apenas campo e o dado

curl -X PATCH \
  http://localhost:3000/post/$post_id \
  -H 'authorization: chaveapi' \
  -H 'content-type: application/json' \
  -d '{
	"title": "Jornada nas Estrelas II"
}'

api-blog's People

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.