Aprenda como integrar sua aplicação com a API do CFS Brasil usando diversas linguagens.
Voltar para HomeAbaixo você encontra exemplos de como realizar a autenticação (login) para obter o token JWT e, em seguida, utilizar esse token para consultar a lista de códigos oficiais (EAN-13, NBS, etc.).
program CFSBrasilClient;
{$APPTYPE CONSOLE}
uses
System.SysUtils, System.Classes, System.Net.HttpClient, System.Net.HttpClientComponent, System.JSON;
var
objClient: TNetHTTPClient;
objResponse: IHTTPResponse;
objJson: TJSONObject;
objPair: TJSONPair;
strToken: string;
strBaseUrl: string;
begin
strBaseUrl := 'https://cfsbrasil.com.br/api';
objClient := TNetHTTPClient.Create(nil);
try
try
// 1. Login
Writeln('Autenticando...');
objJson := TJSONObject.Create;
objJson.AddPair('email', 'seu@email');
objJson.AddPair('password', 'sua@senha');
var objSource := TStringStream.Create(objJson.ToString, TEncoding.UTF8);
objClient.ContentType := 'application/json';
objResponse := objClient.Post(strBaseUrl + '/auth/login', objSource);
if (objResponse.StatusCode >= 200) and (objResponse.StatusCode <= 299) then
begin
objJson := TJSONObject.ParseJSONValue(objResponse.ContentAsString) as TJSONObject;
strToken := objJson.GetValue('token').Value;
Writeln('Login com sucesso! Token: ' + Copy(strToken, 1, 20) + '...');
// 2. Consultar Códigos Oficiais (Requer Autenticação)
Writeln('Consultando códigos oficiais...');
// Adiciona Token no Header
objClient.CustomHeaders['Authorization'] := 'Bearer ' + strToken;
// Rota: /api/official-services (GET)
objResponse := objClient.Get(strBaseUrl + '/api/official-services?page=1&limit=5');
if (objResponse.StatusCode >= 200) and (objResponse.StatusCode <= 299) then
Writeln('Dados recebidos: ' + objResponse.ContentAsString)
else
Writeln('Erro ao consultar: ' + objResponse.StatusCode.ToString);
end
else
Writeln('Erro no login: ' + objResponse.StatusCode.ToString + ' - ' + objResponse.ContentAsString);
except
on E: Exception do
Writeln(E.ClassName, ': ', E.Message);
end;
finally
objClient.Free;
end;
Readln;
end.
using System;
using System.Net.Http;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var strBaseUrl = "https://cfsbrasil.com.br/api";
using var objClient = new HttpClient();
try
{
// 1. Login
Console.WriteLine("Autenticando...");
var objLoginData = new { email = "seu@email", password = "sua@senha" };
var strJsonContent = JsonSerializer.Serialize(objLoginData);
var objContent = new StringContent(strJsonContent, Encoding.UTF8, "application/json");
var objResponse = await objClient.PostAsync($"{strBaseUrl}/auth/login", objContent);
if (objResponse.IsSuccessStatusCode)
{
var strResponseBody = await objResponse.Content.ReadAsStringAsync();
var objJson = JsonSerializer.Deserialize(strResponseBody);
var strToken = objJson.GetProperty("token").GetString();
Console.WriteLine($"Login com sucesso! Token: {strToken.Substring(0, 20)}...");
// 2. Consultar Códigos Oficiais
Console.WriteLine("Consultando códigos oficiais...");
// Adiciona Token no Header
objClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", strToken);
var objServicesResponse = await objClient.GetAsync($"{strBaseUrl}/api/official-services?page=1&limit=5");
if (objServicesResponse.IsSuccessStatusCode)
{
var strServices = await objServicesResponse.Content.ReadAsStringAsync();
Console.WriteLine("Dados recebidos: " + strServices);
}
else
{
Console.WriteLine($"Erro ao consultar: {objServicesResponse.StatusCode}");
}
}
else
{
Console.WriteLine($"Erro no login: {objResponse.StatusCode}");
}
}
catch (Exception ex)
{
Console.WriteLine($"Erro: {ex.Message}");
}
}
}
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
strBaseUrl := "https://cfsbrasil.com.br/api"
// 1. Login
fmt.Println("Autenticando...")
values := map[string]string{"email": "seu@email", "password": "sua@senha"}
jsonData, _ := json.Marshal(values)
resp, err := http.Post(strBaseUrl+"/auth/login", "application/json", bytes.NewBuffer(jsonData))
if err != nil {
fmt.Printf("Erro: %s\n", err)
return
}
defer resp.Body.Close()
if resp.StatusCode >= 200 && resp.StatusCode <= 299 {
body, _ := ioutil.ReadAll(resp.Body)
var result map[string]interface{}
json.Unmarshal(body, &result)
strToken := result["token"].(string)
fmt.Printf("Login com sucesso! Token: %s...\n", strToken[:20])
// 2. Consultar Códigos Oficiais
fmt.Println("Consultando códigos oficiais...")
client := &http.Client{}
req, _ := http.NewRequest("GET", strBaseUrl+"/api/official-services?page=1&limit=5", nil)
// Adiciona Token no Header
req.Header.Add("Authorization", "Bearer "+strToken)
respServices, err := client.Do(req)
if err != nil {
fmt.Printf("Erro: %s\n", err)
return
}
defer respServices.Body.Close()
if respServices.StatusCode >= 200 && respServices.StatusCode <= 299 {
bodyServices, _ := ioutil.ReadAll(respServices.Body)
fmt.Printf("Dados recebidos: %s\n", string(bodyServices))
} else {
fmt.Printf("Erro ao consultar: %d\n", respServices.StatusCode)
}
} else {
fmt.Printf("Erro no login: %d\n", resp.StatusCode)
}
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse.BodyHandlers;
public class Main {
public static void main(String[] args) {
String strBaseUrl = "https://cfsbrasil.com.br/api";
HttpClient objClient = HttpClient.newHttpClient();
try {
// 1. Login
System.out.println("Autenticando...");
String strJsonInput = "{\"email\":\"seu@email\",\"password\":\"sua@senha\"}";
HttpRequest objRequest = HttpRequest.newBuilder()
.uri(URI.create(strBaseUrl + "/auth/login"))
.header("Content-Type", "application/json")
.POST(BodyPublishers.ofString(strJsonInput))
.build();
HttpResponse objResponse = objClient.send(objRequest, BodyHandlers.ofString());
if (objResponse.statusCode() >= 200 && objResponse.statusCode() <= 299) {
// Parse JSON simples (para evitar libs externas no exemplo, fazemos string manipulation basica)
String strBody = objResponse.body();
String strToken = strBody.split("\"token\":\"")[1].split("\"")[0];
System.out.println("Login com sucesso! Token: " + strToken.substring(0, 20) + "...");
// 2. Consultar Códigos Oficiais
System.out.println("Consultando códigos oficiais...");
HttpRequest objServiceRequest = HttpRequest.newBuilder()
.uri(URI.create(strBaseUrl + "/api/official-services?page=1&limit=5"))
.header("Authorization", "Bearer " + strToken)
.GET()
.build();
HttpResponse objServiceResponse = objClient.send(objServiceRequest, BodyHandlers.ofString());
if (objServiceResponse.statusCode() >= 200 && objServiceResponse.statusCode() <= 299) {
System.out.println("Dados recebidos: " + objServiceResponse.body());
} else {
System.out.println("Erro ao consultar: " + objServiceResponse.statusCode());
}
} else {
System.out.println("Erro no login: " + objResponse.statusCode());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
const strBaseUrl = "https://cfsbrasil.com.br/api";
async function main() {
try {
// 1. Login
console.log("Autenticando...");
const objResponse = await fetch(`${strBaseUrl}/auth/login`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ email: 'seu@email', password: 'sua@senha' })
});
if (objResponse.ok) {
const objData = await objResponse.json();
const strToken = objData.token;
console.log(`Login com sucesso! Token: ${strToken.substring(0, 20)}...`);
// 2. Consultar Códigos Oficiais
console.log("Consultando códigos oficiais...");
const objServiceResponse = await fetch(`${strBaseUrl}/api/official-services?page=1&limit=5`, {
method: 'GET',
headers: { 'Authorization': `Bearer ${strToken}` }
});
if (objServiceResponse.ok) {
const objServices = await objServiceResponse.json();
console.log("Dados recebidos:", objServices);
} else {
console.error(`Erro ao consultar: ${objServiceResponse.status}`);
}
} else {
console.error(`Erro no login: ${objResponse.status}`);
}
} catch (error) {
console.error("Erro:", error);
}
}
main();
<?php
$strBaseUrl = "https://cfsbrasil.com.br/api";
// 1. Login
echo "Autenticando...\n";
$ch = curl_init($strBaseUrl . "/auth/login");
$payload = json_encode(array("email" => "seu@email", "password" => "sua@senha"));
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode >= 200 && $httpCode <= 299) {
$data = json_decode($result, true);
$strToken = $data['token'];
echo "Login com sucesso! Token: " . substr($strToken, 0, 20) . "...\n";
// 2. Consultar Códigos Oficiais
echo "Consultando códigos oficiais...\n";
$ch = curl_init($strBaseUrl . "/api/official-services?page=1&limit=5");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Authorization: Bearer $strToken"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$resultServices = curl_exec($ch);
$httpCodeServices = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCodeServices >= 200 && $httpCodeServices <= 299) {
echo "Dados recebidos: " . $resultServices . "\n";
} else {
echo "Erro ao consultar: $httpCodeServices\n";
}
} else {
echo "Erro no login: $httpCode\n";
}
?>