Files
OmniRoute/examples/quickstart/php_curl.php
K R HARI PRAJWAL 27abbba740 docs: add quickstart code examples for Python, Node.js, PHP and cURL (#9922)
Add examples/quickstart/ with minimal copy-paste scripts that let new
users get a response from a local OmniRoute server in under a minute,
without needing to read the full docs first.

Files added:
- examples/quickstart/python_requests.py  (requests library)
- examples/quickstart/nodejs_axios.js     (axios)
- examples/quickstart/curl_terminal.sh    (bash one-liner)
- examples/quickstart/php_curl.php        (cURL extension)
- examples/quickstart/README.md           (table + key-settings cheatsheet)

README.md: add one sub-line pointer to examples/quickstart/ below the
existing zero-config curl snippet, matching the surrounding <sub> style.
2026-08-10 00:27:43 -03:00

43 lines
1.1 KiB
PHP

<?php
/**
* OmniRoute Quickstart — PHP (cURL)
* ===================================
* Run: php php_curl.php
* Requires: PHP 7.4+ with cURL extension enabled
*/
// Your local OmniRoute server — started with: npx omniroute
$api_url = "http://localhost:20128/v1/chat/completions";
$headers = [
"Content-Type: application/json",
"Authorization: Bearer dummy-key", // Any string works for free/keyless providers
];
$data = [
"model" => "felo/auto", // Keyless, works out of the box — no sign-up needed
"stream" => false,
"messages" => [
["role" => "user", "content" => "Hello! What can you do?"],
],
];
$ch = curl_init($api_url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => json_encode($data),
CURLOPT_HTTPHEADER => $headers,
]);
$response = curl_exec($ch);
$http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($http_code === 200) {
$result = json_decode($response, true);
echo $result['choices'][0]['message']['content'] . PHP_EOL;
} else {
echo "Error HTTP $http_code: $response" . PHP_EOL;
}