Skip to content

Commit

Permalink
adjust all broken links and pages
Browse files Browse the repository at this point in the history
  • Loading branch information
rsaz committed Jul 5, 2024
1 parent 9698a23 commit 318a032
Show file tree
Hide file tree
Showing 7 changed files with 91 additions and 87 deletions.
2 changes: 1 addition & 1 deletion docs/overview/usecase.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ In the context of ExpressoTS, use cases represent the business logic of the appl

## We recommend

Despite you can use any design pattern you want such as **[MVC](controller.md#a-mvc-approach)**, in the ExpressoTS opinionated template we reinforce the use of the **[Clean architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)** and **[SOLID principles](https://medium.com/backticks-tildes/the-s-o-l-i-d-principles-in-pictures-b34ce2f1e898)**. We believe that this approach will help you to build a more maintainable and scalable application.
Despite you can use any design pattern you want such as **[MVC](./controller.md#mvc-pattern)**, in the ExpressoTS opinionated template we reinforce the use of the **[Clean architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)** and **[SOLID principles](https://medium.com/backticks-tildes/the-s-o-l-i-d-principles-in-pictures-b34ce2f1e898)**. We believe that this approach will help you to build a more maintainable and scalable application.

It is best practice to have one use case per controller, with the controller being responsible for calling the corresponding use case that will implement the business logic of the request. The request payload, also known as request DTO in ExpressoTS, contains the information required to execute the use case.

Expand Down
2 changes: 1 addition & 1 deletion docusaurus.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ const config: Config = {
deploymentBranch: "gh-pages",
trailingSlash: false,

onBrokenLinks: "warn", // 'throw' | 'warn' | 'ignore'
onBrokenLinks: "throw", // 'throw' | 'warn' | 'ignore'
onBrokenMarkdownLinks: "warn",

i18n: {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ sidebar_position: 0

O método `bootstrap` é o ponto de entrada da sua aplicação. É responsável por carregar a configuração da aplicação, registrar middlewares e iniciar a aplicação.

- O método `AppFactory.create()` é responsável por criar a instância da aplicação. Ele recebe dois parâmetros:
- `container` é o contêiner de injeção de dependências. Veja Contêiner da Aplicação para mais informações.
- `middlewares` ou `App`
- Retorna um instância de `IApplicationExpress` que te dá acesso a dois métodos:
- `app.listen()` inicia a aplicação.
- `app.setEngine()` define o motor de renderização de visualização da aplicação.`
- O método `AppFactory.create()` é responsável por criar a instância da aplicação. Ele recebe dois parâmetros:
- `container` é o contêiner de injeção de dependências. Veja Contêiner da Aplicação para mais informações.
- `middlewares` ou `App`
- Retorna um instância de `IApplicationExpress` que te dá acesso a dois métodos:
- `app.listen()` inicia a aplicação.
- `app.setEngine()` define o motor de renderização de visualização da aplicação.`

:::info
**`middlewares`** é um array de middlewares que serão registrados na aplicação. (Template não opinativo)
Expand All @@ -25,12 +25,13 @@ Use este método se você está usando o template não opinativo. Você tem a li

```typescript
async function bootstrap() {
const app = await AppFactory.create(container, [cors(), helmet()]);
await app.listen(3000, ServerEnvironment.Development);
const app = await AppFactory.create(container, [cors(), helmet()]);
await app.listen(3000, ServerEnvironment.Development);
}

bootstrap();
```

:::tip
**`AppFactory.create(container, [])`** retorna uma instância de `ApplicationExpress` que te dá acesso direto à instância do `ExpressApp`.
:::
Expand All @@ -41,12 +42,13 @@ Use este método se você está usando o template opinativo. Sua classe de aplic

```typescript
async function bootstrap() {
const app = await AppFactory.create(container, App);
await app.listen(3000, ServerEnvironment.Development);
const app = await AppFactory.create(container, App);
await app.listen(3000, ServerEnvironment.Development);
}

bootstrap();
```

:::tip
**`AppFactory.create(container, App)`** retorna uma instância de `IApplicationExpress` que te dá acesso aos métodos `listen()` e `setEngine()`.
:::
Expand All @@ -55,14 +57,14 @@ bootstrap();

O método `listen` é responsável por iniciar a aplicação. Ele recebe dois parâmetros obrigatórios e um parâmetro opcional:

- `port` é o número da porta onde a aplicação estará ouvindo. (Obrigatório)
- `environment` é o ambiente onde a aplicação estará rodando. Pode ser development ou production. Use o enum chamado `ServerEnvironment`. (Obrigatório)
- `consoleMessage` é o objeto de mensagem que será exibido no console quando a aplicação iniciar. (Opcional)
- `port` é o número da porta onde a aplicação estará ouvindo. (Obrigatório)
- `environment` é o ambiente onde a aplicação estará rodando. Pode ser development ou production. Use o enum chamado `ServerEnvironment`. (Obrigatório)
- `consoleMessage` é o objeto de mensagem que será exibido no console quando a aplicação iniciar. (Opcional)

```typescript
await app.listen(3000, ServerEnvironment.Development, {
appName: "Expressots",
appVersion: "1.0.0",
appName: "Expressots",
appVersion: "1.0.0",
});
```

Expand All @@ -76,9 +78,9 @@ O método `setEngine` é responsável por definir o motor de renderização de v

```typescript
app.setEngine<IHandlebars>({
extName: "hbs",
viewPath: path.join(__dirname, "..", "views"),
engine: engine({ defaultLayout: "layout", extname: "hbs" }),
extName: "hbs",
viewPath: path.join(__dirname, "..", "views"),
engine: engine({ defaultLayout: "layout", extname: "hbs" }),
});
```

Expand All @@ -88,9 +90,9 @@ app.setEngine<IHandlebars>({

ExpressoTS é um projeto de código aberto licenciado sob o MIT. É um projeto independente com desenvolvimento contínuo possibilitado graças ao seu suporte. Se você deseja ajudar, por favor considere:

- Se tornar um **[Sponsor no GitHub](https://github.com/sponsors/expressots)**
- Siga a **[organização](https://github.com/expressots)** no GitHub e de um Star ⭐ no projeto
- Subscreva no nosso canal na Twitch: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)**
- Entre no nosso **[Discord](https://discord.com/invite/PyPJfGK)**
- Contribua submetendo **[issues e pull requests](https://github.com/expressots/expressots/issues/new/choose)**
- Compartilhe o projeto com seus amigos e colegas
- Se tornar um **[Sponsor no GitHub](https://github.com/sponsors/expressots)**
- Siga a **[organização](https://github.com/expressots)** no GitHub e de um Star ⭐ no projeto
- Subscreva no nosso canal na Twitch: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)**
- Entre no nosso **[Discord](https://discord.com/invite/PyPJfGK)**
- Contribua submetendo **[issues e pull requests](https://github.com/expressots/expressots/issues/new/choose)**
- Compartilhe o projeto com seus amigos e colegas
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,33 @@ sidebar_position: 3

Os controladores são responsáveis por manipular solicitações recebidas e retornar respostas ao cliente.

- Para informações sobre `BaseController`, veja [BaseController](../overview/controller.md#basecontroller-class).
- Para informações sobre decoradores HTTP e de parâmetros, veja [Decoradores HTTP e de Parâmetros](../overview/decorators.md).
- Os controladores utilizam DTOs para validar o corpo da solicitação, parâmetros de consulta e parâmetros de rota. Veja [DTOs](../overview/controller#dto-pattern) para mais informações.
- Para informações sobre `BaseController`, veja [BaseController](../overview/controller.md#classe-basecontroller).
- Para informações sobre decoradores HTTP e de parâmetros, veja [Decoradores HTTP e de Parâmetros](../overview/decorators.md).
- Os controladores utilizam DTOs para validar o corpo da solicitação, parâmetros de consulta e parâmetros de rota. Veja [DTOs](../overview/controller#padrão-dto) para mais informações.

```typescript
@controller("/")
export class UserGetController extends BaseController {
constructor() {
super();
}

@Get("/")
execute() {
return "Getting a user...";
}
constructor() {
super();
}

@Get("/")
execute() {
return "Getting a user...";
}
}
```

Para criar um controlador, você precisa criar uma classe e decorá-la com o decorador `@controller`. O decorador `@controller` recebe dois parâmetros:

- `path` é o caminho do controlador. (Obrigatório)
- `middlewares` é um array de middlewares. (Opcional)
- `path` é o caminho do controlador. (Obrigatório)
- `middlewares` é um array de middlewares. (Opcional)

```typescript
@controller("/", express.json(), express.urlencoded({ extended: true }))
```

:::info
Definir middlewares no controlador será aplicado a todas as rotas do controlador.
:::
Expand All @@ -41,19 +42,19 @@ Definir middlewares no controlador será aplicado a todas as rotas do controlado
```typescript
@controller("/user")
export class UserController extends BaseController {
constructor() {
super();
}

@Get("/")
get() {
return "Getting a user...";
}

@Post("/create")
create() {
return "Creating a user...";
}
constructor() {
super();
}

@Get("/")
get() {
return "Getting a user...";
}

@Post("/create")
create() {
return "Creating a user...";
}
}
```

Expand Down Expand Up @@ -85,15 +86,15 @@ Você pode injetar dependências no construtor do controlador da seguinte forma:
```typescript
@controller("/")
class AppController extends BaseController {
constructor(private yourProvider: YourProvider) {
super();
}

@Get("/")
get() {
this.yourProvider.doSomething();
return "Hello ExpressoTS!";
}
constructor(private yourProvider: YourProvider) {
super();
}

@Get("/")
get() {
this.yourProvider.doSomething();
return "Hello ExpressoTS!";
}
}
```

Expand All @@ -103,9 +104,9 @@ class AppController extends BaseController {

ExpressoTS é um projeto de código aberto licenciado sob o MIT. É um projeto independente com desenvolvimento contínuo possibilitado graças ao seu suporte. Se você deseja ajudar, por favor considere:

- Se tornar um **[Sponsor no GitHub](https://github.com/sponsors/expressots)**
- Siga a **[organização](https://github.com/expressots)** no GitHub e de um Star ⭐ no projeto
- Subscreva no nosso canal na Twitch: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)**
- Entre no nosso **[Discord](https://discord.com/invite/PyPJfGK)**
- Contribua submetendo **[issues e pull requests](https://github.com/expressots/expressots/issues/new/choose)**
- Compartilhe o projeto com seus amigos e colegas
- Se tornar um **[Sponsor no GitHub](https://github.com/sponsors/expressots)**
- Siga a **[organização](https://github.com/expressots)** no GitHub e de um Star ⭐ no projeto
- Subscreva no nosso canal na Twitch: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)**
- Entre no nosso **[Discord](https://discord.com/invite/PyPJfGK)**
- Contribua submetendo **[issues e pull requests](https://github.com/expressots/expressots/issues/new/choose)**
- Compartilhe o projeto com seus amigos e colegas
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,9 @@ export { container };

Como mencionado acima, se o `defaultScope` não for fornecido, o padrão é definido como `RequestScope`. No entanto, é possível alterar o escopo padrão passando o `defaultScope` como uma opção no construtor do contêiner. O `BindingScopeEnum` contém os seguintes valores:

- `BindingScopeEnum.Singleton` - A dependência será criada uma vez e será compartilhada entre todas as solicitações.
- `BindingScopeEnum.Request` - A dependência será criada uma vez por solicitação.
- `BindingScopeEnum.Transient` - A dependência será criada toda vez que for solicitada.
- `BindingScopeEnum.Singleton` - A dependência será criada uma vez e será compartilhada entre todas as solicitações.
- `BindingScopeEnum.Request` - A dependência será criada uma vez por solicitação.
- `BindingScopeEnum.Transient` - A dependência será criada toda vez que for solicitada.

## Visualizando as vinculações do contêiner

Expand All @@ -72,6 +72,7 @@ O contêiner pode ser usado para visualizar todas as vinculações que foram reg
```typescript
appContainer.viewContainerBindings();
```

![Container Bindings View](./img/container-bindings.png)

## Registrando modulos
Expand All @@ -98,9 +99,9 @@ O uso do `appContainer` abstrai as complexidades do uso direto do InversifyJS, p

ExpressoTS é um projeto de código aberto licenciado sob o MIT. É um projeto independente com desenvolvimento contínuo possibilitado graças ao seu suporte. Se você deseja ajudar, por favor considere:

- Se tornar um **[Sponsor no GitHub](https://github.com/sponsors/expressots)**
- Siga a **[organização](https://github.com/expressots)** no GitHub e de um Star ⭐ no projeto
- Subscreva no nosso canal na Twitch: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)**
- Entre no nosso **[Discord](https://discord.com/invite/PyPJfGK)**
- Contribua submetendo **[issues e pull requests](https://github.com/expressots/expressots/issues/new/choose)**
- Compartilhe o projeto com seus amigos e colegas
- Se tornar um **[Sponsor no GitHub](https://github.com/sponsors/expressots)**
- Siga a **[organização](https://github.com/expressots)** no GitHub e de um Star ⭐ no projeto
- Subscreva no nosso canal na Twitch: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)**
- Entre no nosso **[Discord](https://discord.com/invite/PyPJfGK)**
- Contribua submetendo **[issues e pull requests](https://github.com/expressots/expressots/issues/new/choose)**
- Compartilhe o projeto com seus amigos e colegas
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ No contexto do ExpressoTS, os casos de uso servem para representar a lógica de

## Nós recomendamos

Apesar de você poder usar qualquer padrão de design que desejar como **[MVC](controller.md#a-mvc-approach)**, no template opinativo do ExpressoTS reforçamos o uso da **[Arquitetura Limpa](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)** e **[princípios SOLID](https://medium.com/backticks-tildes/the-s-o-l-i-d-princípios-em-imagens-b34ce2f1e898)**. Acreditamos que essa abordagem ajudará você a criar um aplicativo mais sustentável e escalável.
Apesar de você poder usar qualquer padrão de design que desejar como **[MVC](./controller.md#padrão-mvc)**, no template opinativo do ExpressoTS reforçamos o uso da **[Arquitetura Limpa](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html)** e **[princípios SOLID](https://medium.com/backticks-tildes/the-s-o-l-i-d-princípios-em-imagens-b34ce2f1e898)**. Acreditamos que essa abordagem ajudará você a criar um aplicativo mais sustentável e escalável.

É uma prática recomendada ter um caso de uso por controlador, sendo o controlador responsável por chamar o caso de uso correspondente que irá implementar a lógica de negócios da solicitação. A carga útil da solicitação, também conhecida como DTO de solicitação no ExpressoTS, contém as informações necessárias para executar o caso de uso.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ Ele está incluso apenas no modelo opinativo ou quando você cria uma classe que

Você pode encontrá-lo na pasta `src/providers/application` no modelo opinativo.

O `application.provider` é o provedor principal do aplicativo responsável por controlar o **[Application Lifecycle](../overview/application.md#application-lifecycle-hooks)**.
O `application.provider` é o provedor principal do aplicativo responsável por controlar o **[Application Lifecycle](../overview/application.md#hooks-de-ciclo-de-vida-da-aplicação)**.

Dentro da classe Application você pode encontrar três métodos que são chamados na seguinte ordem:

- `configureServices()` : Configura serviços que devem ser inicializados antes do início do servidor.
- `postServerInitialization()` : Configura serviços que devem ser executados após o início do servidor.
- `serverShutdown()` : Realiza ações ou limpezas após o desligamento do servidor.
- `configureServices()` : Configura serviços que devem ser inicializados antes do início do servidor.
- `postServerInitialization()` : Configura serviços que devem ser executados após o início do servidor.
- `serverShutdown()` : Realiza ações ou limpezas após o desligamento do servidor.

O provedor de validação de ambiente é chamado no método `configureServices()`, prevenindo que o aplicativo inicie se o arquivo `.env` estiver faltando ou se tiver variáveis de ambiente ausentes.

Expand All @@ -41,9 +41,9 @@ Environments.get("PORT");

ExpressoTS é um projeto de código aberto licenciado sob o MIT. É um projeto independente com desenvolvimento contínuo possibilitado graças ao seu suporte. Se você deseja ajudar, por favor considere:

- Se tornar um **[Sponsor no GitHub](https://github.com/sponsors/expressots)**
- Siga a **[organização](https://github.com/expressots)** no GitHub e de um Star ⭐ no projeto
- Subscreva no nosso canal na Twitch: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)**
- Entre no nosso **[Discord](https://discord.com/invite/PyPJfGK)**
- Contribua submetendo **[issues e pull requests](https://github.com/expressots/expressots/issues/new/choose)**
- Compartilhe o projeto com seus amigos e colegas
- Se tornar um **[Sponsor no GitHub](https://github.com/sponsors/expressots)**
- Siga a **[organização](https://github.com/expressots)** no GitHub e de um Star ⭐ no projeto
- Subscreva no nosso canal na Twitch: **[Richard Zampieri](https://www.twitch.tv/richardzampieri)**
- Entre no nosso **[Discord](https://discord.com/invite/PyPJfGK)**
- Contribua submetendo **[issues e pull requests](https://github.com/expressots/expressots/issues/new/choose)**
- Compartilhe o projeto com seus amigos e colegas

0 comments on commit 318a032

Please sign in to comment.