Dart: Criando nosso primeiro Backend
Vamos juntos criar um backend simples com dart?
Hoje, com o Flutter, o dart já virá junto, mas caso prefira, você pode baixar a parte.
Vamos iniciar criando nosso projeto:
dart create server
Se você quiser usar um template mais completo (com uma melhor estrutura de pastas e já com testes), use este comando:
dart create -t console-full full_server
Feito isso você terá um projeto parecido com esse:
O código nosso deve ficar dentro da main, pois será a parte apontada para a execução deste.
Vamos agora adicionar a lib shelf:
No caso, usaremos essa versão:
shelf: ^1.1.4
Usaremos agora o exemplo do próprio shelf:
import ‘package:shelf/shelf.dart’;
import ‘package:shelf/shelf_io.dart’ as shelf_io;void main() async {
var handler =
const Pipeline().addMiddleware(logRequests()).addHandler(_echoRequest);var server = await shelf_io.serve(handler, ‘localhost’, 8080);// Enable content compression
server.autoCompress = true;print(‘Serving at http://${server.address.host}:${server.port}');
}Response _echoRequest(Request request) =>
Response.ok(‘Request for “${request.url}”’);
Para rodar, use: dart run bin/server.dart
Agora, entrando no navegador: http://localhost:8080/teste
Pronto, aplicação criada.
Bonus: Testes Unitários
Vamos adicionar a lib, na maioria das vezes já vem incluída, mas como criamos um exemplo simples teremos que fazer a importação.
Vamos usar essa versão:
test: ^1.17.5
Vamos criar um arquivo: server_test.dart, dentro da pasta test.
Agora vamos escrever um teste básico.
import 'package:test/test.dart';void main() { test('teste basico', () { var nome = 'joao'; expect(nome, 'joao'); });}
Agora, rode o seguinte comando no terminal:
flutter test
A saída deve ser algo assim:
Agora vamos testar um erro, para isso, mude a variável nome para outro valor.
var nome = 1;
Por hoje é isso, espero que tenham gostado. :)