## API de Notícias (Angra) – Uso no Parque Tecnológico do Mar ### 1. Base da API - **URL base:** `https://www.angra.rj.gov.br` (ou o valor de `APP_URL` em produção). - **Prefixo:** Todas as rotas de notícias começam com `/api`. - **Autenticação:** Não é necessária para os endpoints abaixo. - **CORS:** A API já envia `Access-Control-Allow-Origin: *` nas respostas de notícias, então o site externo (Parque TecMar) pode chamar direto pelo browser. --- ### 2. Endpoints #### 2.1 Listar notícias `GET /api/noticias` **Parâmetros de query (opcionais):** | Parâmetro | Tipo | Obrigatório | Descrição | |------------|--------|-------------|-----------| | `categoria`| string | Não | Filtro por tag. Para notícias do Parque TecMar use **`PARQUE_TECMAR`**. | | `limite` | int | Não | Quantidade de notícias (padrão: **10**). | **Exemplos:** - Todas as notícias (até 10): `GET https://www.angra.rj.gov.br/api/noticias` - Só notícias do Parque Tecnológico do Mar (ex.: 6): `GET https://www.angra.rj.gov.br/api/noticias?categoria=PARQUE_TECMAR&limite=6` **Resposta:** `200 OK` — JSON é um **array** de objetos, cada um com: | Campo | Tipo | Descrição | |--------|--------|-----------| | `titulo` | string | Título da notícia. | | `resumo` | string | Resumo em texto puro (sem HTML). | | `data` | string | Data por extenso (ex.: `"09 de Fevereiro de 2025"`). | | `foto` | string | URL absoluta da imagem de destaque (ou imagem padrão se não houver). | | `url` | string | Link para a notícia no site da Prefeitura (ex.: `https://www.angra.rj.gov.br/noticias/09-02-2025/slug-da-noticia`). | **Exemplo de item:** ```json { "titulo": "Exemplo de notícia", "resumo": "Resumo em texto puro.", "data": "09 de Fevereiro de 2025", "foto": "https://www.angra.rj.gov.br/pmar/assets/img/noticias/foto.jpg", "url": "https://www.angra.rj.gov.br/noticias/09-02-2025/slug-da-noticia" } ``` **Erro de categoria inválida:** `400` — corpo com `error`, `categorias_disponiveis` (lista de categorias válidas). --- #### 2.2 Listar categorias `GET /api/noticias/categorias` Sem parâmetros. **Resposta:** `200 OK` — JSON é um **array** de objetos: | Campo | Tipo | Descrição | |-------|--------|-----------| | `chave` | string | Valor para usar em `categoria` no endpoint de notícias. | | `nome` | string | Nome legível da categoria. | **Exemplo:** ```json [ { "chave": "PARQUE_TECMAR", "nome": "Parque Tecnológico do Mar" }, { "chave": "PNMMA", "nome": "Parque Natural Municipal da Mata Atlântica" } ] ``` --- ### 3. Uso recomendado no site Parque Tecnológico do Mar - **Listar notícias do Parque:** `GET https://www.angra.rj.gov.br/api/noticias?categoria=PARQUE_TECMAR`. ** Listar notícias do Parque com Limite: ** `GET https://www.angra.rj.gov.br/api/noticias?categoria=PARQUE_TECMAR&limite=6` (ou outro `limite`). - **Exibir:** usar `titulo`, `resumo`, `data`, `foto` e, no link “Leia mais” ou no card, usar o campo `url` (já aponta para o site da Prefeitura). - **Categorias dinâmicas:** se no futuro quiser montar um filtro por categoria, usar `GET /api/noticias/categorias` e enviar o `chave` no parâmetro `categoria` de `/api/noticias`. --- ### 4. Observações técnicas - **Rate limit:** a API usa limite de 60 requisições por minuto por IP (middleware `api`). - **Ordenação:** as notícias vêm ordenadas por data de criação, mais recentes primeiro. - **Conteúdo:** só retorna notícias com `status = ATIVADO`. - **Paginação:** o endpoint atual não tem `page`/`per_page`; o controle é só pelo parâmetro `limite`.