Documentação da API - Portfolio Equipe 2025
Visão Geral
O Portfolio Equipe 2025 é um bot de chat, portanto não possui API REST tradicional. No entanto, este documento descreve as interfaces e integrações disponíveis.
Integrações Externas
1. GitLab API
Informações do Repositório
GET https://git.juninho.com.br/api/v4/projects/{project_id}
Resposta:
{
"id": 123,
"name": "portfolio-equipe-2025",
"description": "Portfólio profissional da equipe",
"web_url": "https://git.juninho.com.br/equipe-gpso/portfolio-equipe-2025",
"created_at": "2025-03-15T10:00:00Z",
"last_activity_at": "2025-03-15T15:30:00Z"
}Status do Pipeline
GET https://git.juninho.com.br/api/v4/projects/{project_id}/pipelines
Resposta:
{
"id": 456,
"status": "success",
"ref": "main",
"created_at": "2025-03-15T15:30:00Z",
"finished_at": "2025-03-15T15:32:00Z",
"duration": 120
}2. GitLab Pages
URL do Site
https://equipe-gpso.git.juninho.com.br/portfolio-equipe-2025/
Estrutura de URLs
- Página Principal:
/ - Sobre:
/about/ - Equipe:
/team/ - Membro Individual:
/team/member1/ - Documentação:
/docs/
Estrutura de Dados
1. Configuração do Site (config.toml)
baseURL = "https://equipe-gpso.git.juninho.com.br/portfolio-equipe-2025/"
languageCode = "pt-br"
title = "Portfolio Equipe 2025"
theme = "ananke"
[params]
description = "Portfólio profissional da equipe desenvolvido com Hugo"
author = "Equipe GPSO 2025"
keywords = ["portfolio", "hugo", "gitlab", "cefet-mg", "gestão de projetos"]2. Metadados das Páginas
Página Principal
---
title: "Portfolio Equipe 2025"
date: 2025-03-15T10:00:00Z
draft: false
---Página de Membro
---
title: "João Silva - Gerente de Projeto"
date: 2025-03-15T10:00:00Z
draft: false
---Endpoints de Documentação
1. README Principal
GET /README.html
2. Documentação do Projeto
GET /docs/
GET /docs/project-charter.html
GET /docs/requirements.html
GET /docs/architecture.html
GET /docs/api-documentation.html
GET /docs/user-guide.html
3. Índice da Documentação
GET /docs/index.html
Formato de Dados
1. Markdown Front Matter
---
title: "Título da Página"
date: 2025-03-15T10:00:00Z
draft: false
author: "Nome do Autor"
tags: ["tag1", "tag2"]
categories: ["categoria"]
---2. Estrutura de Conteúdo
# Título Principal
## Subtítulo
Conteúdo em Markdown...
### Lista
- Item 1
- Item 2
### Código
```bash
comando de exemploLink
## Configurações de Build
### 1. Hugo Build
```bash
pytest
2. Processamento de Documentação
# Converter README.md para HTML
pandoc README.md -o public/docs/README.html --standalone --css=../css/docs.css
# Converter outros arquivos .md da pasta docs/
for file in docs/*.md; do
if [ -f "$file" ]; then
filename=$(basename "$file" .md)
pandoc "$file" -o "public/docs/${filename}.html" --standalone --css=../css/docs.css
fi
doneHeaders HTTP
1. Headers de Segurança
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000; includeSubDomains
2. Headers de Cache
Cache-Control: public, max-age=3600
ETag: "abc123"
Last-Modified: Wed, 15 Mar 2025 10:00:00 GMT
Códigos de Status HTTP
1. Sucesso
- 200 OK: Página carregada com sucesso
- 304 Not Modified: Conteúdo não modificado
2. Redirecionamento
- 301 Moved Permanently: Redirecionamento permanente
- 302 Found: Redirecionamento temporário
3. Erro do Cliente
- 404 Not Found: Página não encontrada
- 403 Forbidden: Acesso negado
4. Erro do Servidor
- 500 Internal Server Error: Erro interno do servidor
- 503 Service Unavailable: Serviço indisponível
Limitações e Considerações
1. Site Estático
- Não há processamento server-side
- Não há banco de dados
- Não há autenticação de usuários
2. GitLab Pages
- Limitação de tamanho do repositório
- Limitação de largura de banda
- Dependência da disponibilidade do GitLab
3. Hugo
- Limitação de temas disponíveis
- Dependência de versão específica
- Processamento local necessário
Monitoramento
1. Status do Site
curl -I https://equipe-gpso.git.juninho.com.br/portfolio-equipe-2025/2. Status do Pipeline
curl -H "PRIVATE-TOKEN: {token}" \
https://git.juninho.com.br/api/v4/projects/{project_id}/pipelines3. Logs de Build
- Disponíveis no GitLab CI/CD
- Acessíveis via interface web
- Retidos por 30 dias
Troubleshooting
1. Site Não Carrega
- Verificar status do pipeline
- Verificar configuração do GitLab Pages
- Verificar sintaxe do Hugo
2. Pipeline Falha
- Verificar sintaxe do .gitlab-ci.yml
- Verificar permissões do repositório
- Verificar logs de erro
3. Documentação Não Converte
- Verificar sintaxe do Markdown
- Verificar instalação do Pandoc
- Verificar permissões de arquivo