کتابخانه‌ی استاندارد · شبکه

مسیریاب شبکه net/router

مسیریابی درخواست‌های HTTP با پارامتر، گروه و پرونده‌های ایستا.

واردسازی شبکه.مسیریاب شبکه
در این صفحه
  1. گونه‌ها
  2. روال‌ها

مسیریاب برای هر روش و مسیر یک روال گرداننده نگه می‌دارد. در الگو، بخشی که با : شروع شود پارامتر است؛ /books/:id مسیر /books/42 را با id برابر ۴۲ می‌پذیرد. * در انتهای الگو هر ادامه‌ای را می‌پذیرد، بی‌آنکه پارامتری بسازد.

معمولاً مسیریاب را به سرور اچ تی تی پی می‌دهید تا خودش اعزام را صدا بزند؛ گرداننده‌ها شناسه‌ی زمینه‌ی درخواست را می‌گیرند.

گونه‌ها

پارامتر Param

ساختار پارامتر
یک پارامتر مسیر.
نامانگلیسیگونهتوضیح
keykeyرشته = ""نام، بدون :.
valuevalueرشته = ""مقدار از مسیر درخواست.
net-router-Dispatch.salam
واردسازی شبکه.مسیریاب شبکه

ناپایا شمار := ۰

روال فهرست(_زمینه: صحیح۶۴):
    شمار += ۱
پایان

روال نمایش(_زمینه: صحیح۶۴):
    شمار += ۱
پایان

روال ساختن(_زمینه: صحیح۶۴):
    شمار += ۱
پایان

روال ریشه:
    ناپایا م := مسیریاب شبکه.مسیریاب جدید()
    مسیریاب شبکه.دریافت(م، "/books"، فهرست)
    مسیریاب شبکه.دریافت(م، "/books/:id"، نمایش)
    مسیریاب شبکه.ارسال(م، "/books"، ساختن)
    مسیریاب شبکه.قراردادن(م، "/books/:id"، ساختن)
    مسیریاب شبکه.حذف(م، "/books/:id"، ساختن)
    مسیریاب شبکه.وصله(م، "/books/:id"، ساختن)
    مسیریاب شبکه.سر(م، "/books"، فهرست)
    مسیریاب شبکه.گزینه ها(م، "/books"، فهرست)
    مسیریاب شبکه.روش(م، "PURGE"، "/cache"، ساختن)
    مسیریاب شبکه.روش(م، "GET"، "/files/*"، نمایش)
    مسیریاب شبکه.گروه(م، "/api/v1"، "GET"، "/users/:uid/books/:id"، نمایش)
    مسیریاب شبکه.ایستا(م، "/static"، "public")
    مسیریاب شبکه.فعال سازی فهرست پوشه(م)
    سرچاپ م.routes.طول()، م.has_static، م.static_prefix، م.static_listing
    ناپایا ت := مسیریاب شبکه.اعزام(م، "GET"، "/books/42")
    سرچاپ ت.matched، ت.fn == نمایش، مسیریاب شبکه.دریافت پارامتر(ت، "id")
    مسیریاب شبکه.آزادسازی تطابق(ت)
    ناپایا ت۲ := مسیریاب شبکه.اعزام(م، "GET"، "/api/v1/users/7/books/3")
    سرچاپ ت۲.matched، ت۲.params.items.طول()، ت۲.params.items[۰].key، ت۲.params.items[۰].value
    مسیریاب شبکه.آزادسازی تطابق(ت۲)
    ناپایا ت۳ := مسیریاب شبکه.اعزام(م، "GET"، "/files/a/b.txt")
    سرچاپ ت۳.matched، ت۳.params.items.طول()
    مسیریاب شبکه.آزادسازی تطابق(ت۳)
    ناپایا ت۴ := مسیریاب شبکه.اعزام(م، "DELETE"، "/books")
    سرچاپ ت۴.matched، م.routes[۰].method، م.routes[۰].pattern
    مسیریاب شبکه.آزادسازی تطابق(ت۴)
پایان
خروجی11 true /static true true true 42 true 2 uid 7 true 0 false GET /books

پارامترها ParamList

ساختار پارامترها
فهرست پارامترها.
نامانگلیسیگونهتوضیح
itemsitemsوکتور<پارامتر>پارامترها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

مسیر مسیریابی Route

ساختار مسیر مسیریابی
یک مسیر ثبت‌شده.
نامانگلیسیگونهتوضیح
methodmethodرشته = ""روش HTTP.
patternpatternرشته = ""الگوی مسیر.
fnfnصحیح۶۴ = 0روال گرداننده.
midmidصحیح = 0شناسه‌ی روش.
specspecصحیح = 0نوع الگو: صفر ثابت، ۱ با پارامتر، ۲ با *.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

مسیریاب Router

ساختار مسیریاب
مسیریاب: درخواست‌ها را بر اساس روش و مسیر به روال مناسب می‌فرستد.
نامانگلیسیگونهتوضیح
routesroutesوکتور<مسیر مسیریابی>مسیرهای ثبت‌شده.
static_prefixstatic_prefixرشته = ""پیشوند مسیر پرونده‌های ایستا.
static_dirstatic_dirرشته = ""پوشه‌ی پرونده‌های ایستا.
has_statichas_staticمنطقی = نادرستپرونده‌های ایستا فعال است.
static_listingstatic_listingمنطقی = نادرستفهرست محتوای پوشه‌ها نشان داده شود.
idxidxوکتور<صحیح>جدول درهم مسیرهای ثابت.
idx_maskidx_maskصحیح = 0اندازه‌ی جدول منهای یک.
n_literaln_literalصحیح = 0تعداد مسیرهای ثابت.
n_dynamicn_dynamicصحیح = 0تعداد مسیرهای دارای پارامتر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

تطابق Match

ساختار تطابق
نتیجه‌ی یافتن مسیر.
نامانگلیسیگونهتوضیح
matchedmatchedمنطقی = نادرستمسیری پیدا شد.
fnfnصحیح۶۴ = 0روال گرداننده‌ی مسیر.
paramsparamsپارامترهاپارامترهای مسیر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

روال‌ها

مسیریاب جدید NewRouter

روال مسیریاب جدید(): مسیریاب
مسیریاب خالی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

دریافت Get

روال دریافت(r &: مسیریاب، path: رشته، fn: صحیح۶۴)
گرداننده‌ی درخواست‌های GET یک مسیر را ثبت می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

ارسال Post

روال ارسال(r &: مسیریاب، path: رشته، fn: صحیح۶۴)
برای POST.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

قراردادن Put

روال قراردادن(r &: مسیریاب، path: رشته، fn: صحیح۶۴)
برای PUT.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

حذف Delete

روال حذف(r &: مسیریاب، path: رشته، fn: صحیح۶۴)
برای DELETE.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

وصله Patch

روال وصله(r &: مسیریاب، path: رشته، fn: صحیح۶۴)
برای PATCH.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

روال سر(r &: مسیریاب، path: رشته، fn: صحیح۶۴)
برای HEAD.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

گزینه ها Options

روال گزینه ها(r &: مسیریاب، path: رشته، fn: صحیح۶۴)
برای OPTIONS.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

روش Method

روال روش(r &: مسیریاب، method: رشته، path: رشته، fn: صحیح۶۴)
گرداننده را برای روش دلخواه ثبت می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

گروه Group

روال گروه(r &: مسیریاب، prefix: رشته، method: رشته، path: رشته، fn: صحیح۶۴)
مسیر را با پیشوند گروه ثبت می‌کند؛ برای نسخه‌بندی API مثل /api/v1.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

ایستا Static

روال ایستا(r &: مسیریاب، prefix: رشته، dir: رشته)
پرونده‌های پوشه‌ی داده‌شده را زیر پیشوند مسیر سرو می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

فعال سازی فهرست پوشه EnableListing

روال فعال سازی فهرست پوشه(r &: مسیریاب)
برای پوشه‌های بدون index.html، فهرست پرونده‌ها را نشان می‌دهد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

دریافت پارامتر ParamGet

روال دریافت پارامتر(m: تطابق، key: رشته): رشته
مقدار یک پارامتر مسیر؛ اگر نباشد، رشته‌ی خالی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

اعزام Dispatch

روال اعزام(r: مسیریاب، method: رشته، path: رشته): تطابق
مسیر مناسب برای روش و مسیر درخواست را پیدا می‌کند. مسیرهای ثابت بر مسیرهای دارای پارامتر مقدم‌اند و درخواست HEAD، اگر مسیر خودش را نداشته باشد، به مسیر GET می‌رود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam

آزادسازی تطابق FreeMatch

روال آزادسازی تطابق(m &: تطابق)
حافظه‌ی نتیجه را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: net-router-Dispatch.salam