Pāriet uz saturu
ShopentlyLearn

Raksts

Lasīt rakstus un priekšskatīt melnrakstus

GET/api/v1/addons/shopently.blog/posts/{post_id}

Autentifikācija
Bearer
Pieejams no
BASIC
Nepieciešamais instalētais modulis
shopently.blog · Moduļa līguma versija 1
Nepieciešamās atļaujas
addon.shopently.blog:post_read

Koda piemēri

Pieprasījuma piemērs

cURL

: "${SHOPENTLY_SHOP_URL:?}"

curl --disable --globoff --fail-with-body --silent --show-error \
  --proto '=https' --connect-timeout 5 --max-time 30 \
  --request GET \
  --header "Authorization: Bearer ${SHOPENTLY_ACCESS_TOKEN:?}" \
  --url "${SHOPENTLY_SHOP_URL%/}"'/api/v1/addons/shopently.blog/posts/2103ba96-2713-420b-b197-8a008730c851?locale=pl'

PHP

<?php
declare(strict_types=1);

$baseUrl = rtrim(getenv('SHOPENTLY_SHOP_URL') ?: '', '/');
$origin = parse_url($baseUrl);
if (!$origin || ($origin['scheme'] ?? '') !== 'https' || empty($origin['host']) ||
    isset($origin['user'], $origin['pass']) || isset($origin['user']) || isset($origin['path']) ||
    isset($origin['query']) || isset($origin['fragment'])) {
    throw new RuntimeException('SHOPENTLY_SHOP_URL must be an HTTPS origin');
}
$credential = getenv('SHOPENTLY_ACCESS_TOKEN') ?: '';
if ($credential === '' || strpbrk($credential, "\r\n") !== false) {
    throw new RuntimeException('Invalid credential');
}
$headers = [];
$headers[] = 'Authorization: Bearer ' . $credential;
$responseHeaders = [];
$handle = curl_init($baseUrl . '/api/v1/addons/shopently.blog/posts/2103ba96-2713-420b-b197-8a008730c851?locale=pl');
curl_setopt_array($handle, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_PROTOCOLS => CURLPROTO_HTTPS,
    CURLOPT_SSL_VERIFYPEER => true,
    CURLOPT_SSL_VERIFYHOST => 2,
    CURLOPT_CONNECTTIMEOUT => 5,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HEADERFUNCTION => static function ($handle, string $line) use (&$responseHeaders): int {
        if (str_contains($line, ':')) {
            [$name, $value] = explode(':', $line, 2);
            $responseHeaders[strtolower(trim($name))] = trim($value);
        }
        return strlen($line);
    },
]);
$raw = curl_exec($handle);
$status = curl_getinfo($handle, CURLINFO_RESPONSE_CODE);
$error = curl_error($handle);
curl_close($handle);
if ($raw === false) {
    throw new RuntimeException('Transport error: ' . $error);
}
if ($status < 200 || $status >= 300) {
    throw new RuntimeException('HTTP ' . $status . '; request_id=' .
        ($responseHeaders['x-request-id'] ?? '') . '; retry_after=' . ($responseHeaders['retry-after'] ?? ''));
}
$result = $raw === '' ? null : json_decode($raw, true, 512, JSON_THROW_ON_ERROR | JSON_BIGINT_AS_STRING);
echo json_encode($result, JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE), PHP_EOL;

Python

from contextlib import ExitStack
import json
import os
from urllib.parse import urlsplit

import requests  # python -m pip install requests

base_url = os.environ["SHOPENTLY_SHOP_URL"].rstrip("/")
origin = urlsplit(base_url)
if origin.scheme != "https" or not origin.hostname or origin.username or origin.password or origin.path or origin.query or origin.fragment:
    raise ValueError("SHOPENTLY_SHOP_URL must be an HTTPS origin")
credential = os.environ['SHOPENTLY_ACCESS_TOKEN']
if not credential or "\r" in credential or "\n" in credential:
    raise ValueError("Invalid credential")
headers = {}
headers["Authorization"] = 'Bearer' + " " + credential
body = None
if body is not None:
    headers["Content-Type"] = "application/json"

with ExitStack() as stack:
    session = stack.enter_context(requests.Session())
    files = None
    if False:
        image = stack.enter_context(open(os.environ["SHOPENTLY_IMAGE_FILE"], "rb"))
        if os.fstat(image.fileno()).st_size > 5242880:
            raise ValueError("Image exceeds 5 MiB")
        files = {"file": ("article.png", image, "image/png")}
    response = session.request(
        'GET', base_url + '/api/v1/addons/shopently.blog/posts/2103ba96-2713-420b-b197-8a008730c851?locale=pl', headers=headers,
        data=body.encode("utf-8") if body is not None else None, files=files,
        timeout=(5, 30), allow_redirects=False,
    )
    if not 200 <= response.status_code < 300:
        raise RuntimeError(f"HTTP {response.status_code}; request_id={response.headers.get('X-Request-ID', '')}; retry_after={response.headers.get('Retry-After', '')}")
    if False:
        if response.headers.get("Content-Type") != "image/webp" or len(response.content) > 5242880:
            raise ValueError("Unexpected image response")
        with open(os.environ["SHOPENTLY_OUTPUT_FILE"], "xb") as output:
            output.write(response.content)
    else:
        result = response.json() if response.content else None
        print(json.dumps(result, ensure_ascii=False, indent=2))

Atbildes piemērs 200

JSON
{
  "data": {
    "author_id": "341494e0-caab-4f47-a8ff-f6795c42a775",
    "comments_mode": "open",
    "content_html": "<h2>Porównaj właściwości</h2><p>Sprawdź opis produktu i wybierz wariant odpowiedni do swoich potrzeb.</p>",
    "cover_alt": "Niebieska ilustracja poradnika",
    "cover_caption": "Ilustracja redakcyjna",
    "cover_media_id": "e8663afe-3c38-461c-a142-a980085630af",
    "draft_revision_id": "8c4af6da-63f4-42aa-8b37-57c703fa0af7",
    "excerpt": "Praktyczny poradnik zakupowy.",
    "first_published_at": null,
    "id": "2103ba96-2713-420b-b197-8a008730c851",
    "last_published_at": null,
    "locale": "pl",
    "meta_description": "Praktyczne wskazówki dotyczące wyboru produktu.",
    "meta_keywords": [
      "poradnik",
      "wybór"
    ],
    "meta_title": "Jak wybrać produkt",
    "public_number": 1,
    "publish_at": null,
    "publish_timezone": null,
    "published_revision_id": null,
    "schedule_state": null,
    "scheduled_revision_id": null,
    "slug": "jak-wybrac-produkt",
    "status": "draft",
    "title": "Jak wybrać produkt",
    "updated_at": "2026-10-07T23:17:44.320869Z",
    "version": 1
  },
  "meta": {
    "request_id": "c85f6074-44e5-4d74-a117-fb631879fb7d"
  }
}

Pārskats

Veidojiet veikala blogu ar HTML rakstiem, fotoattēliem, autoriem un meklētājprogrammu metadatiem. Saglabājiet melnrakstus, sagatavojiet tulkojumus un publicējiet uzreiz vai izvēlētā laikā noteiktā laika joslā. Pārvaldiet komentārus un moderēšanu panelī; ārējs ģenerators var izmantot API ar piešķirtajām tiesībām.

BASIC · api.enabled · addons.use(shopently.blog) · addon.shopently.blog:post_read

Parametri

Ceļa parametri

post_idVirkneObligāts

Raksts

format: "uuid"
Piemērs: "2103ba96-2713-420b-b197-8a008730c851"

Vaicājuma parametri

localeVirkneObligāts

Šim pieprasījumam izvēlētā valoda.

minLength: 2maxLength: 35
Ierobežojumi
pattern
"^[a-zA-Z]{2,3}(?:-[a-zA-Z0-9]{2,8})*$"
Piemērs: "pl"

Šī darbība nepieņem JSON saturu.

Atbildes

Atbilde 200

dataObjektsPapildu lauki: NēObligāts

Veiksmīgas atbildes dati.

Lauki · data
author_idVirkne nullObligāts

Autors

Virkne:format: "uuid"
comments_modeVirkneObligāts

Komentāri

Ierobežojumi
enum
["inherit", "open", "closed"]
content_htmlVirkneObligāts

Saturs

maxLength: 50000
cover_altVirkneObligāts

Alternatīvais teksts

maxLength: 250
cover_captionVirkneObligāts

Fotoattēla paraksts

maxLength: 500
cover_media_idVirkne nullObligāts

Vāka fotoattēls

Virkne:format: "uuid"
draft_revision_idVirkneObligāts

Melnraksta versija

format: "uuid"
excerptVirkneObligāts

Ievads

maxLength: 1000
first_published_atVirkne nullObligāts

Pirmoreiz publicēts

Virkne:format: "date-time"
idVirkneObligāts

Resursa identifikators; saglabājiet to atgrieztajā formā.

format: "uuid"
last_published_atVirkne nullObligāts

Pēdējoreiz publicēts

Virkne:format: "date-time"
localeVirkneObligāts

Šim pieprasījumam izvēlētā valoda.

minLength: 2maxLength: 35
Ierobežojumi
pattern
"^[a-zA-Z]{2,3}(?:-[a-zA-Z0-9]{2,8})*$"
meta_descriptionVirkneObligāts

Meklētājprogrammas apraksts izvēlētajā valodā.

maxLength: 160
meta_keywordsMasīvs <Virkne> Obligāts

Meklētājprogrammas atslēgvārdi izvēlētajā valodā.

maxItems: 20
Masīvs:minLength: 1maxLength: 50
meta_titleVirkneObligāts

Meklētājprogrammas virsraksts izvēlētajā valodā.

maxLength: 70
public_numberVesels skaitlisObligāts

Numurs

minimum: 1
publish_atVirkne nullObligāts

Publicēšanas datums

Virkne:format: "date-time"
publish_timezoneVirkne nullObligāts

Laika josla

Virkne:maxLength: 64
published_revision_idVirkne nullObligāts

Versija (Publicēta)

Virkne:format: "uuid"
schedule_stateVirkne nullObligāts

Plānota publicēšana

Ierobežojumi · Virkne 1
enum
["armed", "requires_confirmation"]
scheduled_revision_idVirkne nullObligāts

Versija (Ieplānots)

Virkne:format: "uuid"
slugVirkneObligāts

URL ceļa segments izvēlētajā valodā.

maxLength: 160
statusVirkneObligāts

Šai konkrētajai darbībai pieņemamais statuss.

Ierobežojumi
enum
["draft", "scheduled", "published", "archived"]
titleVirkneObligāts

Virsraksts izvēlētajā valodā.

maxLength: 200
updated_atVirkneObligāts

Pēdējās atjaunināšanas laiks.

format: "date-time"
versionVesels skaitlisObligāts

Resursa versija vienlaicīgu izmaiņu kontrolei.

minimum: 1maximum: 9223372036854775807
metaObjektsPapildu lauki: NēObligāts

Atbildes metadati.

Lauki · meta
request_idVirkneObligāts

Pieteikuma identifikators; atbildes metadatos tas identificē HTTP pieprasījumu.

minLength: 1maxLength: 100
Atbildes piemērs

HTTP statuss

200
Veiksmīga atbilde Shēma
400
Nederīgs pieprasījums
401
Nepieciešama autentifikācija
403
Piekļuve liegta
404
Resurss nav atrasts
409
Versiju konflikts
422
Validācijas kļūda
429
Pārsniegts pieprasījumu limits
Citi HTTP statusi (7)
405
Metode nav atļauta
413
Pieprasījums ir pārāk liels
415
Neatbalstīts formāts
500
Servera kļūda
502
API vārtejas kļūda
503
Pakalpojums nav pieejams
504
Noildze

Kļūdu katalogs: ErrorResponse

Galvenes

401

WWW-AuthenticateVirkneNeobligāts

Servera pieprasītā autentifikācijas shēma.

405

AllowVirkneNeobligāts

Šī resursa atbalstītās HTTP metodes.

429, 503

Retry-AfterVesels skaitlisNeobligāts

Minimālā aizkave pirms atkārtošanas sekundēs.

minimum: 0