Skip to content

Commit 7c71c73

Browse files
committed
Add Getting Started PT-BR
1 parent 43c1815 commit 7c71c73

File tree

4 files changed

+300
-0
lines changed

4 files changed

+300
-0
lines changed
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
# Estrutura de Pastas
2+
3+
Agora que você criou, construiu e executou seu primeiro aplicativo Vapor, vamos aproveitar um momento para familiarizá-lo com a estrutura de pastas do Vapor. A estrutura é baseada na estrutura de pastas do [SPM](spm.md), então, se você já trabalhou com SPM antes, ela deve ser familiar.
4+
5+
```
6+
.
7+
├── Public
8+
├── Sources
9+
│ ├── App
10+
│ │ ├── Controllers
11+
│ │ ├── Migrations
12+
│ │ ├── Models
13+
│ │ ├── configure.swift
14+
│ │ ├── entrypoint.swift
15+
│ │ └── routes.swift
16+
17+
├── Tests
18+
│ └── AppTests
19+
└── Package.swift
20+
```
21+
22+
As seções abaixo explicam cada parte da estrutura de pastas com mais detalhes.
23+
24+
## Public
25+
26+
Esta pasta contém quaisquer arquivos públicos que serão servidos pelo seu aplicativo se o `FileMiddleware` estiver habilitado. Isso geralmente inclui imagens, folhas de estilo e scripts de navegador. Por exemplo, uma solicitação para `localhost:8080/favicon.ico` verificará se `Public/favicon.ico` existe e o retornará.
27+
28+
Você precisará habilitar o `FileMiddleware` no seu arquivo `configure.swift` antes que o Vapor possa servir arquivos públicos.
29+
30+
```swift
31+
// Serve arquivos do diretório `Public/`
32+
let fileMiddleware = FileMiddleware(
33+
publicDirectory: app.directory.publicDirectory
34+
)
35+
app.middleware.use(fileMiddleware)
36+
```
37+
38+
## Sources
39+
40+
Esta pasta contém todos os arquivos fonte Swift do seu projeto.
41+
A pasta de nível superior, `App`, reflete o módulo do seu pacote,
42+
como declarado no manifesto do [SwiftPM](spm.md).
43+
44+
### App
45+
46+
Aqui é onde toda a lógica da sua aplicação deve ser colocada.
47+
48+
#### Controllers
49+
50+
Controllers são uma excelente maneira de agrupar lógica de aplicação. A maioria dos controllers possui várias funções que aceitam uma solicitação e retornam algum tipo de resposta.
51+
52+
#### Migrations
53+
54+
A pasta de migrations é onde vão suas migrações de banco de dados, se você estiver usando Fluent.
55+
56+
#### Models
57+
58+
A pasta de models é um ótimo lugar para armazenar seus `structs` de `Content` ou `Model`s do Fluent.
59+
60+
#### configure.swift
61+
62+
Este arquivo contém a função `configure(_:)`. Este método é chamado por `entrypoint.swift` para configurar a `Application` recém-criada. Aqui é onde você deve registrar serviços como rotas, bancos de dados, provedores e mais.
63+
64+
#### entrypoint.swift
65+
66+
Este arquivo contém o ponto de entrada `@main` para a aplicação que configura e executa sua aplicação Vapor.
67+
68+
#### routes.swift
69+
70+
Este arquivo contém a função `routes(_:)`. Este método é chamado perto do fim de `configure(_:)` para registrar rotas na sua `Application`.
71+
72+
## Tests
73+
74+
Cada módulo não executável em sua pasta `Sources` pode ter uma pasta correspondente em `Tests`. Isso contém código construído sobre o módulo `XCTest` para testar seu pacote. Os testes podem ser executados usando `swift test` no terminal ou pressionando ⌘+U no Xcode.
75+
76+
### AppTests
77+
78+
Esta pasta contém os testes unitários para o código no seu módulo `App`.
79+
80+
## Package.swift
81+
82+
Finalmente, o manifesto do pacote do [SPM](spm.md).
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
# Olá, mundo
2+
3+
Este guia o levará passo a passo pela criação de um novo projeto Vapor, construindo-o e executando o servidor.
4+
5+
Se você ainda não instalou o Swift ou o Vapor Toolbox, confira a seção de instalação.
6+
7+
- [Instalação → macOS](../install/macos.md)
8+
- [Instalação → Linux](../install/linux.md)
9+
10+
## Novo Projeto
11+
12+
O primeiro passo é criar um novo projeto Vapor no seu computador. Abra o seu terminal e use o comando de novo projeto do Toolbox. Isso criará uma nova pasta no diretório atual contendo o projeto.
13+
14+
```sh
15+
vapor new hello -n
16+
```
17+
18+
!!! tip
19+
A flag `-n` lhe dá um template básico, respondendo automaticamente não a todas as perguntas.
20+
21+
!!! tip
22+
Você também pode obter o template mais recente do GitHub sem o Vapor Toolbox, clonando o [repositório de templates](https://github.com/vapor/template-bare)
23+
24+
!!! tip
25+
O Vapor e o template agora usam `async`/`await` por padrão.
26+
Se você não puder atualizar para o macOS 12 e/ou precisar continuar usando `EventLoopFuture`s,
27+
use a flag `--branch macos10-15`.
28+
29+
Depois que o comando terminar, mude para a pasta recém-criada:
30+
31+
```sh
32+
cd hello
33+
```
34+
35+
## Construir & Executar
36+
37+
### Xcode
38+
39+
Primeiro, abra o projeto no Xcode:
40+
41+
```sh
42+
open Package.swift
43+
```
44+
45+
Ele começará automaticamente a baixar as dependências do Gerenciador de Pacotes Swift. Isso pode levar algum tempo na primeira vez que você abrir um projeto. Quando a resolução de dependência estiver completa, o Xcode irá preencher os esquemas disponíveis.
46+
47+
No topo da janela, à direita dos botões Play e Stop, clique no nome do seu projeto para selecionar o Esquema do projeto e selecione um alvo de execução apropriado — provavelmente, "Meu Mac". Clique no botão play para construir e executar seu projeto.
48+
49+
Você deve ver o Console aparecer na parte inferior da janela do Xcode.
50+
51+
```sh
52+
[ INFO ] Server starting on http://127.0.0.1:8080
53+
```
54+
55+
### Linux
56+
57+
No Linux e em outros sistemas operacionais (e até no macOS, se você não quiser usar o Xcode), você pode editar o projeto no seu editor de escolha, como Vim ou VSCode. Veja os [Guias do Servidor Swift](https://github.com/swift-server/guides/blob/main/docs/setup-and-ide-alternatives.md) para detalhes atualizados sobre a configuração de outros IDEs.
58+
59+
Para construir e executar seu projeto, no Terminal execute:
60+
61+
```sh
62+
swift run
63+
```
64+
65+
Isso construirá e executará o projeto. A primeira vez que você executar isso levará algum tempo para buscar e resolver as dependências. Uma vez executando, você deve ver o seguinte no seu console:
66+
67+
```sh
68+
[ INFO ] Server starting on http://127.0.0.1:8080
69+
```
70+
71+
## Visite o Localhost
72+
73+
Abra seu navegador web e visite <a href="http://localhost:8080/hello" target="_blank">localhost:8080/hello</a> ou <a href="http://127.0.0.1:8080" target="_blank">http://127.0.0.1:8080</a>
74+
75+
Você deve ver a seguinte página.
76+
77+
```html
78+
Hello, world!
79+
```
80+
81+
Parabéns por criar, construir e executar seu primeiro aplicativo Vapor! 🎉

docs/getting-started/spm.pt-BR.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# Gerenciador de Pacotes Swift
2+
3+
O [Gerenciador de Pacotes Swift](https://swift.org/package-manager/) (SPM) é usado para construir o código-fonte do seu projeto e suas dependências. Como o Vapor depende muito do SPM, é uma boa ideia entender os conceitos básicos de como ele funciona.
4+
5+
O SPM é semelhante ao Cocoapods, Ruby gems e NPM. Você pode usar o SPM a partir da linha de comando com comandos como `swift build` e `swift test` ou com IDEs compatíveis. No entanto, ao contrário de alguns outros gerenciadores de pacotes, não há um índice central de pacotes para o SPM. O SPM, em vez disso, utiliza URLs para repositórios Git e gerencia versões de dependências usando [tags do Git](https://git-scm.com/book/en/v2/Git-Basics-Tagging).
6+
7+
## Manifesto do Pacote
8+
9+
O primeiro lugar que o SPM verifica em seu projeto é o manifesto do pacote. Isso sempre deve estar localizado no diretório raiz do seu projeto e nomeado `Package.swift`.
10+
11+
Veja este exemplo de manifesto do pacote.
12+
13+
```swift
14+
// swift-tools-version:5.8
15+
import PackageDescription
16+
17+
let package = Package(
18+
name: "MyApp",
19+
platforms: [
20+
.macOS(.v12)
21+
],
22+
dependencies: [
23+
.package(url: "https://github.com/vapor/vapor.git", from: "4.76.0"),
24+
],
25+
targets: [
26+
.executableTarget(
27+
name: "App",
28+
dependencies: [
29+
.product(name: "Vapor", package: "vapor")
30+
]
31+
),
32+
.testTarget(name: "AppTests", dependencies: [
33+
.target(name: "App"),
34+
.product(name: "XCTVapor", package: "vapor"),
35+
])
36+
]
37+
)
38+
```
39+
40+
Cada parte do manifesto é explicada nas seções seguintes.
41+
42+
### Versão das Ferramentas
43+
44+
A primeira linha de um manifesto de pacote indica a versão das ferramentas Swift necessárias. Isso especifica a versão mínima do Swift que o pacote suporta. A API de descrição do Pacote também pode mudar entre versões do Swift, então esta linha garante que o Swift saberá como analisar seu manifesto.
45+
46+
### Nome do Pacote
47+
48+
O primeiro argumento para `Package` é o nome do pacote. Se o pacote for público, você deve usar o último segmento da URL do repositório Git como o nome.
49+
50+
### Plataformas
51+
52+
O array `platforms` especifica quais plataformas este pacote suporta. Ao especificar `.macOS(.v12)`, este pacote requer macOS 12 ou posterior. Quando o Xcode carrega este projeto, ele automaticamente define a versão mínima de implantação para macOS 12, para que você possa usar todas as APIs disponíveis.
53+
54+
### Dependências
55+
56+
Dependências são outros pacotes SPM nos quais seu pacote depende. Todas as aplicações Vapor dependem do pacote Vapor, mas você pode adicionar quantas outras dependências desejar.
57+
58+
No exemplo acima, você pode ver [vapor/vapor](https://github.com/vapor/vapor) versão 4.76.0 ou posterior como uma dependência deste pacote. Quando você adiciona uma dependência ao seu pacote, você deve indicar quais [targets](#targets) dependem dos módulos recém-disponíveis.
59+
60+
### Targets
61+
62+
Targets são todos os módulos, executáveis e testes que seu pacote contém. A maioria dos aplicativos Vapor terá dois targets, embora você possa adicionar quantos quiser para organizar seu código. Cada target declara de quais módulos depende. Você deve adicionar nomes de módulos aqui para poder importá-los em seu código. Um target pode depender de outros targets em seu projeto ou de quaisquer módulos expostos por pacotes que você adicionou ao array de [dependências principais](#dependencies).
63+
64+
## Estrutura de Pastas
65+
66+
Abaixo está a estrutura de pastas típica para um pacote SPM.
67+
68+
```
69+
.
70+
├── Sources
71+
│ └── App
72+
│ └── (Source code)
73+
├── Tests
74+
│ └── AppTests
75+
└── Package.swift
76+
```
77+
78+
Cada `.target` ou `.executableTarget` corresponde a uma pasta na pasta `Sources`.
79+
Cada `.testTarget` corresponde a uma pasta na pasta `Tests`.
80+
81+
## Package.resolved
82+
83+
A primeira vez que você construir seu projeto, o SPM criará um arquivo `Package.resolved` que armazena a versão de cada dependência. Na próxima vez que você construir seu projeto, essas mesmas versões serão usadas, mesmo que haja versões mais recentes disponíveis.
84+
85+
Para atualizar suas dependências, execute `swift package update`.
86+
87+
## Xcode
88+
89+
Se você estiver usando o Xcode 11 ou superior, as alterações em dependências, targets, produtos, etc., ocorrerão automaticamente sempre que o arquivo `Package.swift` for modificado.
90+
91+
Se você quiser atualizar para as últimas versões das dependências, use Arquivo &rarr; Pacotes Swift &rarr; Atualizar Para as Últimas Versões de Pacote Swift.
92+
93+
Você também pode querer adicionar o arquivo `.swiftpm` ao seu `.gitignore`. É aqui que o Xcode armazenará sua configuração do projeto Xcode.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Xcode
2+
3+
Esta página aborda algumas dicas e truques para usar o Xcode. Se você usa um ambiente de desenvolvimento diferente, pode ignorar esta seção.
4+
5+
## Diretório de Trabalho Personalizado
6+
7+
Por padrão, o Xcode executará seu projeto a partir da pasta _DerivedData_. Esta pasta não é a mesma que a pasta raiz do seu projeto (onde seu arquivo _Package.swift_ está). Isso significa que o Vapor não será capaz de encontrar arquivos e pastas como _.env_ ou _Public_.
8+
9+
Você pode perceber que isso está acontecendo se vir o seguinte aviso ao executar seu aplicativo.
10+
11+
```fish
12+
[ WARNING ] No custom working directory set for this scheme, using /path/to/DerivedData/project-abcdef/Build/
13+
```
14+
15+
Para corrigir isso, defina um diretório de trabalho personalizado no esquema do Xcode para o seu projeto.
16+
17+
Primeiro, edite o esquema do seu projeto clicando no seletor de esquemas ao lado dos botões de play e stop.
18+
19+
![Área do Esquema do Xcode](../images/xcode-scheme-area.png)
20+
21+
Selecione _Edit Scheme(Editar Esquema)..._ no menu suspenso.
22+
23+
![Menu do Esquema do Xcode](../images/xcode-scheme-menu.png)
24+
25+
No editor de esquemas, escolha a ação _App_ e a aba _Opções_. Marque _Usar diretório de trabalho personalizado_ e insira o caminho para a pasta raiz do seu projeto.
26+
27+
![Opções do Esquema do Xcode](../images/xcode-scheme-options.png)
28+
29+
Você pode obter o caminho completo para a pasta raiz do seu projeto executando `pwd` de uma janela do terminal aberta lá.
30+
31+
```fish
32+
# verifique se estamos na pasta do projeto vapor
33+
vapor --version
34+
# obtenha o caminho para esta pasta
35+
pwd
36+
```
37+
38+
Você deve ver uma saída semelhante à seguinte.
39+
40+
```
41+
framework: 4.x.x
42+
toolbox: 18.x.x
43+
/path/to/project
44+
```

0 commit comments

Comments
 (0)