GetAPI.ONE
Генерация изображений с GetAPI.ONE
Выберите модель изображений из актуального каталога, отправьте минимальный заявленный запрос в конечную точку изображений ONE, проверьте структуру ответа и безопасно сохраните результат.
Подготовьте поддерживаемый запрос
- Откройте текущий каталог и выберите модель, заявленная конечная точка которой предназначена для генерации изображений.
- Перед оплачиваемым вызовом проверьте актуальные цены; это руководство не фиксирует цену.
- Начните с одного результата и только тех полей, которые указаны в контракте модели.
POST https://www.getapi.one/v1/images/generationsОтправьте минимальный запрос генерации
- Задайте GETAPI_ONE_API_KEY в доверенной среде процесса.
- Скопируйте точный идентификатор модели изображений из текущего каталога.
- Опишите в подсказке объект, композицию и ограничения.
- Сначала запросите один результат, затем расширяйте необязательные поля только после подтверждения поддержки моделью.
- Локально декодируйте ограниченный вывод base64. Если ответ содержит URL, запишите его для одобренного загрузчика с явными правилами исходящих соединений и хостов и повторной проверкой перенаправлений, а не открывайте его в процессе API.
curl --fail-with-body https://www.getapi.one/v1/images/generations \
-H "Authorization: Bearer $GETAPI_ONE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<IMAGE_MODEL_ID_FROM_CURRENT_CATALOG>",
"prompt": "A clean product diagram of a secure server-side API flow",
"n": 1
}' > image-response.jsonimport base64
import json
from pathlib import Path
from urllib.parse import urlsplit
payload = json.loads(Path("image-response.json").read_text(encoding="utf-8"))
item = payload["data"][0]
if item.get("b64_json"):
image_bytes = base64.b64decode(item["b64_json"], validate=True)
if len(image_bytes) > 25 * 1024 * 1024:
raise ValueError("Image exceeds the local 25 MB safety limit")
Path("generated-image.bin").write_bytes(image_bytes)
elif item.get("url"):
url = item["url"]
parsed = urlsplit(url)
if parsed.scheme != "https" or not parsed.hostname:
raise ValueError("Refusing an invalid or non-HTTPS image URL")
# Do not dereference provider-controlled URLs from a generic server example.
# Give this record to an approved downloader that enforces your egress and
# host policy, rejects private/link-local/loopback destinations, revalidates
# every redirect, sends no ONE credential, and bounds the response bytes.
Path("generated-image-url.txt").write_text(url, encoding="utf-8")
print("URL recorded for an egress-controlled downloader")
else:
raise ValueError("Expected data[0].url or data[0].b64_json")
Оцените результат
| Проверка | Условие прохождения |
|---|---|
| Соответствие подсказке | Необходимые объект и композиция присутствуют. |
| Безопасность и права | Результат подходит предполагаемой аудитории, и у вас есть права на предоставленные материалы. |
| Контракт ответа | Проверьте data[0].url или data[0].b64_json, подтвердите корректность и сохраните возвращённые байты. |
| Эксплуатационная запись | Идентификатор модели, версия подсказки, идентификатор запроса при наличии и результат записаны без ключа. |
Проверьте ожидаемый результат
- HTTP-запрос выполнен успешно, а тело содержит структуру результата изображения, которую возвращает выбранная модель.
- Декодированный файл base64 открывается как ожидаемый тип изображения, либо результат URL записан и затем получен только одобренным загрузчиком с контролем исходящих соединений, явными правилами хостов и повторной проверкой перенаправлений.
- Консоль ONE регистрирует запрос или соответствующее использование.
Исправление ошибок запроса изображений
| Симптом | Действие |
|---|---|
| Неподдерживаемый параметр | Удаляйте необязательные поля размера, качества, формата или количества, пока их поддержка конкретной моделью не подтверждена. |
| Пустой или непригодный результат | Проверьте полное тело JSON и обработайте фактическое поле URL или кодированных данных; не предполагайте единый формат поставщика. |
| Отклонение по политике или входным данным | Измените входные данные вместо многократной отправки одного запроса. |
Безопасно храните входные и выходные данные
- Храните ключи на сервере и проверяйте длину подсказки, число результатов и необязательные поля перед пересылкой.
- Не отправляйте конфиденциальные исходные изображения или персональные данные, если это не разрешено утверждёнными правилами обработки данных.
- Считайте возвращённые URL временными, если контракт поставщика явно не говорит обратное; копируйте одобренный результат в контролируемое хранилище.
- Никогда не передавайте заголовок Authorization GetAPI.ONE по возвращённому URL изображения.
- Считайте возвращённые URL недоверенными входными данными: применяйте явную политику исходящих соединений и хостов, блокируйте частные, локальные для канала и loopback-адреса и повторно проверяйте каждое перенаправление в отдельном загрузчике.