سواگر net/http/swagger
نوشتن مستندات OpenAPI برای API و نمایش صفحهی مستندات.
واردسازی شبکه.اچ تی تی پی شبکه.سواگر
سواگر مستندات API را در قالب استاندارد OpenAPI میسازد و صفحهای برای دیدن و آزمودن آن سرو میکند. با مسیر یک عملیات را انتخاب میکنید و روالهای بعدی، مثل خلاصه و برمی گرداند، همان را توصیف میکنند.
طرحوارهی بدنهها و پاسخها از یک مقدار نمونه ساخته میشود؛ یک ساختار خالی بدهید تا فیلدهایش، با نامهای @json، در مستندات بیایند. جا افتاده مسیرهایی را نشان میدهد که هنوز مستند نشدهاند.
گونهها
پارامتر Param
ساختار پارامتر| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| name | name | رشته = "" | نام. |
| loc | loc | رشته = "query" | جا: query، header، cookie یا path. |
| required | required | منطقی = نادرست | الزامی. |
| description | description | رشته = "" | توضیح. |
| schema | schema | رشته = "{"گونه":"string"}" | طرحواره. |
واردسازی شبکه.اچ تی تی پی شبکه.سواگر
واردسازی کدگذاری.جیسون
ساختار کتاب:
@json "id"
همگانی شناسه: صحیح = ۰
@json "title"
همگانی عنوان: رشته = ""
پایان
روال ریشه:
ناپایا س := سواگر.جدید("کتابخانه"، "1.2.0")
سواگر.توضیح(س، "API نمونه برای کتابها")
سواگر.سرور(س، "https://api.example.com"، "اصلی")
سواگر.تماس(س، "تیم سلام"، "https://salamlang.ir"، "[email protected]")
سواگر.پروانه(س، "MIT"، "https://opensource.org/licenses/MIT")
سواگر.احراز هویت حامل(س، "token"، "JWT")
سواگر.احراز هویت کلید(س، "key"، "header"، "X-API-Key")
_ := سواگر.مسیر(س، "GET"، "/books/:id")
سواگر.خلاصه(س، "یک کتاب")
سواگر.جزئیات(س، "کتاب را با شناسه برمیگرداند.")
سواگر.برچسب(س، "books")
سواگر.شناسه عملیات(س، "getBook")
سواگر.پارامتر مسیر(س، "id"، "شناسهی کتاب")
سواگر.پرسمان(س، "fields"، "فیلدهای خواستهشده"، نادرست)
سواگر.پرسمان نوع دار(س، "limit"، "حداکثر"، نادرست، ۱۰)
ناپایا ترتیبها := وکتور {} برگردان وکتور<رشته>
ترتیبها.بیفزا("title")
ترتیبها.بیفزا("id")
سواگر.پرسمان گزینه ای(س، "sort"، "ترتیب"، نادرست، ترتیبها)
سواگر.سرصفحه(س، "X-Trace"، "شناسهی رهگیری"، نادرست)
سواگر.کوکی(س، "sid"، "نشست"، نادرست)
سواگر.امن(س، "token")
سواگر.برمی گرداند(س، ۲۰۰، "کتاب"، کتاب {})
سواگر.برمی گرداند سرصفحه(س، ۲۰۰، "ETag"، "نسخه")
سواگر.بدون بدنه برمی گرداند(س، ۴۰۴، "پیدا نشد")
_ := سواگر.مسیر(س، "POST"، "/books")
سواگر.می پذیرد(س، "کتاب تازه"، کتاب {})
سواگر.برمی گرداند(س، ۲۰۱، "ساخته شد"، کتاب {})
_ := سواگر.مسیر(س، "PUT"، "/books/:id/cover")
سواگر.می پذیرد خام(س، "تصویر جلد"، "image/png"، "{\"type\":\"string\",\"format\":\"binary\"}"، درست)
سواگر.برمی گرداند متن(س، ۲۰۰، "انجام شد")
_ := سواگر.مسیر(س، "POST"، "/books/:id/notes")
سواگر.می پذیرد اختیاری(س، "یادداشت"، کتاب {})
سواگر.می پذیرد فرم(س، "فرم"، کتاب {})
سواگر.برمی گرداند خام(س، ۲۰۰، "خروجی"، "text/csv"، "{\"type\":\"string\"}")
سواگر.برمی گرداند اچ تی ام ال(س، ۲۰۰، "صفحه")
سواگر.برمی گرداند پرونده(س، ۲۰۰، "پرونده"، "application/pdf")
سواگر.منسوخ(س)
سرچاپ سواگر.انتخاب مسیر(س، "get"، "/books/:id")، سواگر.انتخاب مسیر(س، "GET"، "/nope")
سرچاپ س.ops.طول()، س.ops[۰].params.طول()، س.ops[۰].replies.طول()، س.ops[۳].is_deprecated، س.schemes.طول()
متن := سواگر.مشخصات(س)
سرچاپ جیسون.معتبر(متن)، جیسون.دریافت(متن، "openapi")
سرچاپ سواگر.مشخصات با تورفتگی(س).طول() > متن.طول()
سرچاپ سواگر.مشکلات(س).طول()، سواگر.توضیح داده نشده(س)
سرچاپ سواگر.نوشتن مشخصات(س، "openapi.json")، سواگر.مشخصات از پرونده("openapi.json").طول() > ۰، سواگر.مشخصات از پرونده("نیست.json")
سرچاپ سواگر.طرحواره متن، سواگر.نوع جیسون
سواگر.آزاد سازی(س)
پایانپاسخ Reply
ساختار پاسخ| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| code | code | صحیح = 200 | کد وضعیت. |
| description | description | رشته = "" | توضیح. |
| schema | schema | رشته = "" | طرحوارهی بدنه. |
| content_type | content_type | رشته = "application/json" | نوع محتوا. |
| header_names | header_names | وکتور<رشته> | نام سرآیندهای پاسخ. |
| header_notes | header_notes | وکتور<رشته> | توضیح آنها. |
نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
طرح احراز هویت Scheme
ساختار طرح احراز هویت| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| name | name | رشته = "" | نام. |
| kind | kind | رشته = "http" | نوع: http یا apiKey. |
| scheme | scheme | رشته = "bearer" | برای http، مثل bearer. |
| format | format | رشته = "" | قالب توکن، مثل JWT. |
| loc | loc | رشته = "header" | جای کلید. |
| param | param | رشته = "" | نام پارامتر کلید. |
| description | description | رشته = "" | توضیح. |
نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
عملیات Op
ساختار عملیات| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| method | method | رشته = "" | روش. |
| pattern | pattern | رشته = "" | الگوی مسیر. |
| op_id | op_id | رشته = "" | شناسهی عملیات. |
| summary | summary | رشته = "" | خلاصه. |
| description | description | رشته = "" | توضیح. |
| is_deprecated | is_deprecated | منطقی = نادرست | منسوخ است. |
| tags | tags | وکتور<رشته> | برچسبها. |
| params | params | وکتور<پارامتر> | پارامترها. |
| replies | replies | وکتور<پاسخ> | پاسخها. |
| security | security | وکتور<رشته> | روشهای احراز هویت لازم. |
| body_schema | body_schema | رشته = "" | طرحوارهی بدنه. |
| body_description | body_description | رشته = "" | توضیح بدنه. |
| body_required | body_required | منطقی = درست | بدنه الزامی است. |
| body_content_type | body_content_type | رشته = "application/json" | نوع محتوای بدنه. |
نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
تعریف Definition
ساختار تعریف| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| name | name | رشته = "" | نام. |
| body | body | رشته = "" | طرحوارهی جیسون. |
نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
سند Doc
ساختار سند| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| title | title | رشته = "API" | عنوان API. |
| version | version | رشته = "1.0.0" | نسخه. |
| description | description | رشته = "" | توضیح. |
| servers | servers | وکتور<رشته> | نشانی سرورها. |
| server_notes | server_notes | وکتور<رشته> | توضیح هر سرور. |
| ops | ops | وکتور<عملیات> | عملیاتها. |
| defs | defs | وکتور<تعریف> | تعریف گونهها. |
| schemes | schemes | وکتور<طرح احراز هویت> | روشهای احراز هویت. |
| contact_name | contact_name | رشته = "" | نام تماس. |
| contact_url | contact_url | رشته = "" | نشانی تماس. |
| contact_email | contact_email | رشته = "" | ایمیل تماس. |
| license_name | license_name | رشته = "" | نام پروانه. |
| license_url | license_url | رشته = "" | نشانی پروانه. |
| cur | cur | صحیح = -1 | شمارهی عملیات فعلی؛ روالهای توصیف روی همین کار میکنند. |
نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
پایاها و متغیرها
نوع جیسون JSON_TYPE
پایا نوع جیسون: رشته = "application/json"نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
نوع متن TEXT_TYPE
پایا نوع متن: رشته = "text/plain; charset=utf-8"نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
نوع اچ تی ام ال HTML_TYPE
پایا نوع اچ تی ام ال: رشته = "text/html; charset=utf-8"نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
نوع فرم FORM_TYPE
پایا نوع فرم: رشته = "application/x-www-form-urlencoded"نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
طرحواره متن TEXT_SCHEMA
پایا طرحواره متن: رشته = "{"گونه":"string"}"نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
طرحواره دودویی BINARY_SCHEMA
پایا طرحواره دودویی: رشته = "{"گونه":"string"،"format":"binary"}"نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
روالها
جدید New
روال جدید(title: رشته، version: رشته): سندنمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
توضیح Describe
روال توضیح(d &: سند، text: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
سرور Server
روال سرور(d &: سند، url: رشته، note: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
تماس Contact
روال تماس(d &: سند، name: رشته، url: رشته، email: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
پروانه License
روال پروانه(d &: سند، name: رشته، url: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
احراز هویت حامل BearerAuth
روال احراز هویت حامل(d &: سند، name: رشته، format: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
احراز هویت کلید ApiKeyAuth
روال احراز هویت کلید(d &: سند، name: رشته، loc: رشته، param: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
مسیر Route
روال مسیر(d &: سند، method: رشته، pattern: رشته): صحیح:name مسیر خودکار ثبت میشوند.نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
انتخاب مسیر At
روال انتخاب مسیر(d &: سند، method: رشته، pattern: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
خلاصه Summary
روال خلاصه(d &: سند، text: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
جزئیات Details
روال جزئیات(d &: سند، text: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
برچسب Tag
روال برچسب(d &: سند، name: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
شناسه عملیات OperationId
روال شناسه عملیات(d &: سند، id: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
منسوخ Deprecated
روال منسوخ(d &: سند)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
امن Secure
روال امن(d &: سند، scheme: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
پرسمان Query
روال پرسمان(d &: سند، name: رشته، description: رشته، required: منطقی)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
پرسمان نوع دار QueryTyped
روال پرسمان نوع دار<T>(d &: سند، name: رشته، description: رشته، required: منطقی، sample: T)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
پرسمان گزینه ای QueryEnum
روال پرسمان گزینه ای(d &: سند، name: رشته، description: رشته، required: منطقی، values: وکتور<رشته>)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
سرصفحه Header
روال سرصفحه(d &: سند، name: رشته، description: رشته، required: منطقی)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
کوکی Cookie
روال کوکی(d &: سند، name: رشته، description: رشته، required: منطقی)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
پارامتر مسیر PathParam
روال پارامتر مسیر(d &: سند، name: رشته، description: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
می پذیرد Accepts
روال می پذیرد<T>(d &: سند، description: رشته، sample: T)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
می پذیرد اختیاری AcceptsOptional
روال می پذیرد اختیاری<T>(d &: سند، description: رشته، sample: T)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
می پذیرد خام AcceptsRaw
روال می پذیرد خام(d &: سند، description: رشته، content_type: رشته، schema: رشته، required: منطقی)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
می پذیرد فرم AcceptsForm
روال می پذیرد فرم<T>(d &: سند، description: رشته، sample: T)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
برمی گرداند Returns
روال برمی گرداند<T>(d &: سند، code: صحیح، description: رشته، sample: T)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
برمی گرداند خام ReturnsRaw
روال برمی گرداند خام(d &: سند، code: صحیح، description: رشته، content_type: رشته، schema: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
برمی گرداند متن ReturnsText
روال برمی گرداند متن(d &: سند، code: صحیح، description: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
برمی گرداند اچ تی ام ال ReturnsHtml
روال برمی گرداند اچ تی ام ال(d &: سند، code: صحیح، description: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
برمی گرداند پرونده ReturnsFile
روال برمی گرداند پرونده(d &: سند، code: صحیح، description: رشته، content_type: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
برمی گرداند سرصفحه ReturnsHeader
روال برمی گرداند سرصفحه(d &: سند، code: صحیح، name: رشته، description: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
بدون بدنه برمی گرداند ReturnsNothing
روال بدون بدنه برمی گرداند(d &: سند، code: صحیح، description: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
مشخصات Spec
روال مشخصات(d: سند): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
مشخصات با تورفتگی SpecIndent
روال مشخصات با تورفتگی(d: سند): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
نصب Mount
روال نصب(d: سند، r &: router.Router، prefix: رشته)openapi.json را زیر پیشوند دادهشده به مسیریاب اضافه میکند.واردسازی شبکه.اچ تی تی پی شبکه
واردسازی شبکه.اچ تی تی پی شبکه.سواگر
واردسازی شبکه.مسیریاب شبکه
واردسازی رشته
روال فهرست(ز: صحیح۶۴):
اچ تی تی پی شبکه.جیسون زمینه(ز، "[]")
پایان
روال ریشه:
ناپایا م := مسیریاب شبکه.مسیریاب جدید()
مسیریاب شبکه.دریافت(م، "/books"، فهرست)
مسیریاب شبکه.ارسال(م، "/books"، فهرست)
مسیریاب شبکه.دریافت(م، "/admin/stats"، فهرست)
ناپایا س := سواگر.جدید("کتابخانه"، "1.0.0")
سرچاپ سواگر.جا افتاده(س، م)
سواگر.پویش با پیشوند(س، م، "/books")
سرچاپ س.ops.طول()، سواگر.جا افتاده(س، م)
سواگر.پویش(س، م)
سرچاپ س.ops.طول()، سواگر.جا افتاده(س، م).طول()
سواگر.نصب(س، م، "/docs")
ناپایا سرور := اچ تی تی پی شبکه.سرور جدید(۱۹۶۰۷)
اچ تی تی پی شبکه.استفاده(سرور، م)
_ := اچ تی تی پی شبکه.اجرا در پس زمینه(سرور)
پ := اچ تی تی پی شبکه.دریافت("http://127.0.0.1:19607/docs/openapi.json")
سرچاپ اچ تی تی پی شبکه.وضعیت(پ)، رشته.شامل است(اچ تی تی پی شبکه.بدنه(پ)، "/admin/stats")
صفحه := اچ تی تی پی شبکه.دریافت("http://127.0.0.1:19607/docs")
سرچاپ رشته.شامل است(اچ تی تی پی شبکه.بدنه(صفحه)، "<html")
ناپایا م۲ := مسیریاب شبکه.مسیریاب جدید()
سواگر.نصب مشخصات("{\"openapi\":\"3.1.0\"}"، "آماده"، م۲، "/spec")
سرچاپ م۲.routes.طول()
سرچاپ سواگر.سرو(س، ۱۹۶۰۸)، اچ تی تی پی شبکه.وضعیت(اچ تی تی پی شبکه.دریافت("http://127.0.0.1:19608/openapi.json"))
سرچاپ سواگر.سرو مشخصات("{\"openapi\":\"3.1.0\"}"، "دیگر"، ۱۹۶۰۹)
سرچاپ رشته.شامل است(سواگر.صفحه("API"، "/openapi.json")، "/openapi.json")
پایاننصب مشخصات MountSpec
روال نصب مشخصات(spec: رشته، title: رشته، r &: router.Router، prefix: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Serve.salam
سرو Serve
روال سرو(d: سند، port: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Serve.salam
سرو مشخصات ServeSpec
روال سرو مشخصات(spec: رشته، title: رشته، port: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Serve.salam
مشخصات از پرونده SpecFromFile
روال مشخصات از پرونده(path: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
نوشتن مشخصات WriteSpec
روال نوشتن مشخصات(d: سند، path: رشته): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
مشکلات Problems
روال مشکلات(d: سند): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
توضیح داده نشده Undocumented
روال توضیح داده نشده(d: سند): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
جا افتاده Missing
روال جا افتاده(d: سند، r: router.Router): وکتور<رشته>نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Serve.salam
آزاد سازی Free
روال آزاد سازی(d &: سند)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Build.salam
صفحه Page
روال صفحه(title: رشته، spec_url: رشته): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Serve.salam
پویش Scan
روال پویش(d &: سند، r: router.Router)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Serve.salam
پویش با پیشوند ScanPrefix
روال پویش با پیشوند(d &: سند، r: router.Router، prefix: رشته)نمونهی این مورد همراه با موارد بالاتر آمده است: net-http-swagger-Serve.salam