# Saúde do serviço (caminho versionado)

> Saúde do serviço (caminho versionado): GET /v1/health. O mesmo que /health, no caminho versionado. Não precisa de chave.

Fonte: https://praeko.app/docs/api/health/service-health-versioned-path

`GET /v1/health` · rota pública, sem chave

O mesmo que `/health`, no caminho versionado. Não precisa de chave.

Alias antigo em português (continua respondendo, marcado como obsoleto): `/v1/saude`.

## Exemplo

**curl**

```bash
curl "https://praeko.app/v1/health"
```

**JavaScript**

```js
const res = await fetch("https://praeko.app/v1/health", {
  method: "GET",
});
console.log(res.status, await res.json());
```

**Node**

```js
import { Praeko } from "@praeko/sdk";

const praeko = new Praeko({ url: "https://praeko.app", key: process.env.PRAEKO_KEY });
const resultado = await praeko.health();
console.log(resultado);
```

**Python**

```python
import requests

resp = requests.get(
    "https://praeko.app/v1/health",
)
print(resp.status_code, resp.json())
```

**PHP**

```php
<?php
$ch = curl_init('https://praeko.app/v1/health');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_RETURNTRANSFER => true,
]);
$resposta = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_HTTP_CODE), " ", $resposta, PHP_EOL;
curl_close($ch);
```

**Go**

```go
package main

import (
	"fmt"
	"io"
	"net/http"
)

func main() {
	req, err := http.NewRequest("GET", "https://praeko.app/v1/health", nil)
	if err != nil {
		panic(err)
	}
	resp, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer resp.Body.Close()
	out, _ := io.ReadAll(resp.Body)
	fmt.Println(resp.Status, string(out))
}
```

**Ruby**

```ruby
require "net/http"
require "uri"

uri = URI("https://praeko.app/v1/health")
request = Net::HTTP::Get.new(uri)

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }
puts response.code, response.body
```

**C#**

```csharp
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;

using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Get, "https://praeko.app/v1/health");

using var response = await client.SendAsync(request);
Console.WriteLine($"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}");
```

**Java**

```java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Main {
    public static void main(String[] args) throws Exception {
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://praeko.app/v1/health"))
            .method("GET", HttpRequest.BodyPublishers.noBody())
            .build();
        HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.statusCode() + " " + response.body());
    }
}
```

**HTTPie**

```bash
http GET "https://praeko.app/v1/health"
```

> SDK oficial para Node: Instale com `npm install @praeko/sdk` (veja [SDK e CLI](https://praeko.app/docs/sdk)).

## Resposta

| Status de sucesso | Quando |
|---|---|
| `200` | Sucesso. |

**Resposta 200**

```json
{
  "ok": true,
  "service": "praeko",
  "version": "0.1.0"
}
```

## Erros

Sem erros específicos desta rota além dos comuns.
