GH GambleHub

Ҳуҷҷатҳои API: OpEN API, Swagger, Postman

TL; ДР

Open-API - манбаи ҳақиқат: шартнома → SDK → moki → tests → portal.
Swagger UI/Redoc - намоиши хондан; Почтачин - скриптҳои иҷрошаванда.
Мо дар линтерҳо, шикастани чекҳо, намунаҳо ва схемаҳои хатогӣ дӯхтем, серверҳои SDK ва Mock тавлид мекунем, портали девона ва "Ғуруби офтоб" -ро нашр мекунем.

1) Ҳадафҳо ва принсипҳо

Шартномаи якум (Open-API). Ҳама чизи дигар тавлид мешавад.
Ҳуҷҷатгузорӣ иҷрошаванда аст: дархостҳои намунавӣ дар Postman/CLI санҷида мешаванд.
Амнияти пешфарз: схемаҳои хатогӣ, маҳдудиятҳо, аутентификатсия.
Версия ва давраи зиндагӣ: 'v1 '/' v2', Амортизатсия/Ғуруби офтоб, changelog.

2) Сохтори кушодаи API (скелети ҳадди аққал)

yaml openapi: 3. 0. 3 info:
title: Payments API version: 1. 2. 0 description: >
Payment transactions: auth/capture/refund/payout. All responses contain trace_id.
servers:
- url: https://api. example. com/v1 tags:
- name: Payments
- name: Payouts components:
securitySchemes:
oauth2:
type: oauth2 flows:
clientCredentials:
tokenUrl: https://idp. example. com/oauth/token scopes:
payments: read: read payments: write: write payments schemas:
Error:
type: object required: [error, error_description, trace_id]
properties:
error: { type: string }
error_description: { type: string }
trace_id: { type: string, format: uuid }
security:
- oauth2: [payments:read]
paths:
/payments/{id}:
get:
summary: Receive payment tags: [Payments]
parameters:
- in: path name: id required: true schema: { type: string, format: uuid }
responses:
'200':
description: Content succeeded:
application/json:
schema: { $ref: '#/components/schemas/Payment' }
'404': { $ref: '#/components/responses/NotFound' }
components:
responses:
NotFound:
description: Content not found:
application/json:
schema: { $ref: '#/components/schemas/Error' }
Маслиҳатҳо:
  • Ҷудо кардани схемаҳо/ҷавобҳо/параметрҳо/дархостҳо ба 'компонентҳо'.
  • Нақшаҳои амниятро (OAuth2/JWT/HMAC) тавсиф кунед ва дар сатҳи 'роҳҳо '/' глобалӣ' татбиқ кунед.

3) Стандарти хато ва метамаълумот

Объекти хатогии ягона (барои REST ва webhooks):
yaml components:
schemas:
ApiError:
type: object required: [error, error_description, trace_id]
properties:
error: { enum: [invalid_request, not_found, rate_limited, internal] }
error_description: { type: string }
trace_id: { type: string, format: uuid }

Ҳамеша ҳуҷҷати 429 (меъёри маҳдудият), 401/403 ва сарлавҳаҳои 'X-Rate' Limit- ',' Retry-After '-ро ҳуҷҷатгузорӣ кунед.

4) Намунаҳо: дархост/посух, curl ва SDK

Барои ҳар як нуқтаи ниҳоӣ: мисоли ҳадди аққал ва васеъ.
Эҷод кардани порчаҳои ҷингила ва рамз (JS/Python/Go) аз Open бо дасти худ нанависед.
Арзишҳои воқеиро татбиқ кунед: UUID, ISO-сана, маблағҳо дар "ноболиғ" (сент).

Намунаи посухи васеъ:
yaml examples:
ok:
value:
id: "pay_123"
amount_minor: 1099 currency: "EUR"
status: "captured"
created_at: "2025-11-03T12:34:56Z"

5) Swagger UI/Redoc - чӣ гуна бояд овехт

Мизбони ду мағоза:

1. Swagger UI (интерактивӣ, санҷиш-берун),

2. Редок (саҳифаҳои дарозро хондан).

Дохил кунед: мавзӯи торик, ҷустуҷӯ, селектори версия ('v1', 'v2'), баннерҳои амортизатсия.

Барои домени истеҳсолӣ "Кӯшиш кунед" -ро пинҳон кунед, дар қуттии қуттӣ иҷозат диҳед.

6) Маҷмӯаҳои почтачиён: Скриптҳои зинда

Худоғоз кардани коллексия аз Open

Илова кардани пешпардохтҳо (гирифтани нишона) ва пост-тестҳо (тасдиқи вазъ/схемаҳо).
Ба ҷузвдонҳо ворид шавед: Auth, пардохтҳо, пардохтҳо, Webhooks.
Мониторҳои содиротӣ (ба нақша гирифташуда) барои хатсайрҳои муҳим.

Қолаби санҷиш:
js pm. test("status is 200", () => pm. response. code === 200);
pm. test("schema valid", () => tv4. validate(pm. response. json(), pm. collectionVariables. get("schema_payment")));

7) Моки ва сандуқ

Тавлиди сервери масхара аз Open-API (мисолҳо/' мисол '/' мисолҳо ').
Маҳдудиятҳои mocsро нишон диҳед: номутобиқатӣ, таъхирҳо, хатогиҳои тасодуфӣ (барои UAT).
Қуттии ҳуҷҷат ва фарқияти prod (маҳдудиятҳо, маълумот, таъхирҳо).

8) Автогенератсияи SDK

Аз Open-API, SDK-ҳои расмиро тавлид кунед (TypE Script, Python, Go).
Сиёсати барориши SDK = Sem-Ver, харитасозии версияи API.
Дар README SDK: аутентификатсия, ретрай, аблаҳӣ, коркарди 429/Retry-After.

9) Линтинг, санҷиши шикастагӣ ва CI

Линтерҳо: спектралӣ (услубҳо/анти-намунаҳо), openapi-diff (шикастани чекҳо).

CI:
  • валидатори ноҳиявӣ,
  • линтер,
  • озмоишҳои шартномавӣ бар зидди сервери ioc,
  • Маҷмаи Swagger/Redoc/коллексия,
  • нашр ба портал (марҳила → prod),
  • Амортизатсия/Ҳушдори ғуруби офтоб.

10) Версия, фарсудашавӣ, ғуруби офтоб

Версия дар URI ('/v1 ') ва дар' маълумот. версия '.
Парчамҳои фарсудашавӣ: 'Фарсудашавӣ: ҳақиқӣ', 'Ғуруби офтоб: <RFC1123 сана>', 'Истинод: <changelog>' сарлавҳаҳо.
Дар портал - баннер ва вақтсанҷ пеш аз кандашавӣ; Маҷмӯаҳои почтачиён барои v1 ях бастаанд (танҳо ислоҳи хатогиҳо).

11) Амният ва махфият дар бандар

Сирри худро, URL-ҳои дохилӣ, PAN/PII-и воқеиро ҷойгир накунед.
Барои соҳаҳои ҳассос - намунаҳои ниқоб ва доғ.
Swagger "Кӯшиш кунед" → танҳо ба қуттии қуттӣ бо маҳдудиятҳои меъёрӣ.
Равшан аст, ки OAuth2/OIDC, HMAC (барои webhooks) ва MTLS (агар лозим бошад) тавсиф кунед.

12) Шартномаҳои роҳнамои услуб

Захираҳои зиёд: '/пардохтҳо ', '/пардохтҳо'.
Идентификаторҳо: 'пардохт _'', po _', UUIDv4 ё ksuid.
Санаҳо - UTC ISO-8601; пул - 'маблағ _ ноболиғ + асъор'.
Пагинатсия - курсор ('? курсор = & лимит = '), навъбандии устувор.
Idempotency - 'Idempotency-Key' барои мутатсия.
Объекти устувор 'meta' ва 'links' барои рӯйхатҳо.

13) Бахши "Вебхукҳо" -и док

Қисмати алоҳида бо лифофаи рӯйдодҳо, имзоҳои HMAC, равзанаи вақт, бозсозӣ, рамзҳои вокуниш.
Мақомоти чорабиниҳои намунавӣ ва ҷамъоварии Postman барои санҷиши имзоҳои маҳаллӣ.
нуқтаҳои такрорӣ/DLQ ва рӯйхати назоратии UAT.

14) Портали Dev: Нақшҳо ва нашр

Қисматҳо: Шарҳ, оғоз, аутентификатсия, нуқтаҳои ниҳоӣ, намунаҳо, вебхукҳо, SDK, маҳдудиятҳо, Changelog.
Нақшҳо: Steward API (стандартҳо), Соҳиби домейн (мундариҷа), Tech Writer (таҳрир), Деврел (портал/ҷомеа).
Хусусият: кофтуков тавассути майдонҳои схема, нусхабардории намунаҳо, "дархост ҷамъ кунед" → Почтачин.

15) Рӯйхати санҷишҳо

Пеш аз озод:
  • API дуруст аст; linter бе хатогиҳо.
  • Намунаҳо 200/4xx/429/5xx-ро дар бар мегиранд.
  • Амният: нақшаҳои auth тавсиф карда мешаванд, ҳеҷ сирре нест.
  • Swagger/Redoc ва Postman ташаккулёфта (prod/sandbox).
  • SDK тавлид ва нашр шудааст.
  • Навсозии changelog ва selector версия.
Барои фарсудашавӣ:
  • Сарлавҳаҳои амортизатсия/ғуруби офтоб.
  • Баннер дар портал, номаҳо ба шарикон.
  • Нишондиҳандаҳои зангҳои меросӣ ба ҳадаф мерасанд.

16) Анти-намунаҳо

Манбаъҳои такрории ҳақиқат (wiki Open API).
Намунаҳои "бо чашм" бидуни давидан дар Постман.
Набудани формати ягонаи хатогӣ.
Версияи "дар параметрҳои дархост" ба ҷои URI/домен.
Swagger бо дастрасӣ ба хӯрок ва ҳеҷ маҳдудият.
Схемаҳои номувофиқ ва аутентификатсия.

17) порчаҳои мини автоматизатсия

Тавлиди коллексияи Postman аз Open-API (псевдо):
bash openapi2postmanv2 -s openapi. yaml -o postman. json -p
Нашри портал (қадамҳои CI, псевдо-YAML):
yaml steps:
- run: spectral lint openapi. yaml
- run: openapi-diff --fail-on-breaking main. yaml openapi. yaml
- run: redoc-cli bundle openapi. yaml -o site/redoc. html
- run: swagger-cli bundle openapi. yaml -o site/swagger. json
- run: openapi2postmanv2 -s openapi. yaml -o site/postman. json -p
- run: npm run deploy:portal

18) Маҳаллисозӣ ва мавҷудият

Индивидуалӣ. description_<lang>' ё ду маҷлисҳои порталӣ (EN/RU).
Истилоҳоти луғатӣ (KYC/AML, пардохт, idempotency).
Контраст, паймоиши клавиатура, мавзӯи торик.

Хулоса

Лӯлаи ҳуҷҷатҳоро ҷамъ кунед: як қарордоди ягонаи Open Мисолҳои мунтазам, формати ягонаи хатогӣ ва аутентификатсияи қавӣ ҳуҷҷатҳоро аз PDF дар раф ба воситаи ҳамгироии корӣ табдил медиҳанд, шариконро суръат мебахшанд ва хароҷоти дастгирӣ коҳиш медиҳанд.

Contact

Тамос гиред

Барои саволҳо е дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Оғози интегратсия

Email — муҳим аст. Telegram е WhatsApp — ихтиерӣ.

Номи шумо ихтиерӣ
Email ихтиерӣ
Мавзӯъ ихтиерӣ
Паем ихтиерӣ
Telegram ихтиерӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиерӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.