Gerador de frases do Monty Python utilizando Servlet e JDBC
help
{{apiData.me.position}}˚ no Ranking
profile pic account_circle
Login Comece agora
Iniciar Desafio Iniciar Desafio Fórum
{{apiData.participant_count}} Participantes
Criado Por: Created by Daniel Blank
Java
Servlet
JSON
JDBC

Gerador de frases do Monty Python

Monty Python foi um dos grupos de comediantes mais influentes e reverenciados da história da TV. Vamos criar uma API para gerar frases aleatórias coletadas dos episódios da trupe, de acordo com nosso ator favorito.

Tópicos

Neste desafio você aprenderá:

  • Java
  • Criar APIs
  • Testar APIs
  • Ler dados de um banco de dados SQLite
  • Servlet
  • JDBC

Requisitos

​ Para este desafio você precisará de:

  • Java 8 (ou superior)
  • Git

Detalhes

O arquivo database.sqlite é uma base de dados SQLite. Esta base possui uma tabela chamada scripts com a estrutura:

CREATE TABLE IF NOT EXISTS "scripts" (
  "index" INTEGER,
  "episode" INTEGER,
  "episode_name" TEXT,
  "segment" TEXT,
  "type" TEXT,
  "actor" TEXT,
  "character" TEXT,
  "detail" TEXT,
  "record_date" TIMESTAMP,
  "series" TEXT,
  "transmission_date" TIMESTAMP
);
CREATE INDEX "ix_scripts_index"ON "scripts" ("index");

Na coluna detail estão as frases que devem ser apresentadas pela API. Na coluna actor, consta o nome do ator.

A API deve responder pelas seguintes URLs:

/v1/quote

Método: GET

Retorna uma frase aleatória de qualquer ator.

/v1/quote/{actor}

Método: GET

Retorna uma frase aleatória do ator passado como parâmetro.

O formato esperado em ambas URLs é uma Response JSON:

{"actor":"John Cleese","quote":"Yes, cigarettes. My hovercraft is full of eels."}

Rodando a aplicação

Executar o comando gradlew appRun

A aplicação estará disponível em http://localhost:8080

codenation code review

Para receber Code review, compartilhe o link abaixo com colegas ou em nosso fórum de discussões:

codenation code review

Para receber Code review, você precisa primeiramente finalizar o desafio.

{{apiData.participant_count}} Participantes

Para definir seu posicionamento no ranking do desafio, utilizaremos a nota mais alta que tiver conquistado nele. Caso outra pessoa participante obtenha a mesma nota que a sua, o critério de desempate será data e hora de envio da mais recente.

empty ranking Ainda não temos participantes suficientes para o ranking!
Aproveite e seja um dos primeiros a participar desse desafio.
CODE:NOME NOTA
{{candidate.position}}. {{candidate.name}} {{candidate.score.toFixed(2)}}%
Building Java Web Applications

Building Java Web Applications

Apostila Caelum - Servlets

Apostila Caelum - Servlets

JDBC Basics

In this lesson you will learn the basics of the JDBC API.

Apostila Caelum - Bancos de dados e JDBC

Apostila Caelum - Bancos de dados e JDBC

FasterXML/jackson-databind

General data-binding package for Jackson (2.x): works on streaming API (core) implementation(s)