Notice: We're retiring Works with Nest. See the home page for more information.
Google is committed to advancing racial equity for Black communities. See how.
این صفحه به‌وسیله ‏Cloud Translation API‏ ترجمه شده است.
Switch to English

نحوه تغییر مسیرها

برخی از زبان های برنامه نویسی دارای پیاده سازی HTTP هستند که برای هدایت مجدد به هندلینگ ویژه نیاز دارند.

در پاسخ به درخواست REST API ، سرور Nest API تغییر مسیر را برمی گرداند. مشتری REST تغییر مسیر را شناسایی می کند و صفحه ای را که مشتری به آن هدایت شده است درخواست می کند. برخی از پیاده سازی های HTTP ، عنوان مجوز را به URI هدایت نشده هدایت نمی کند ، و این منجر به یک خطای 401 غیرمجاز می شود.

به عنوان مثال ، فرض کنید از foo.com درخواست می کنید. سرور foo.com با یک تغییر مسیر به bar.com پاسخ می دهد. Postman یا Curl ، سرصفحه مجوز را به foo و سپس نوار منتقل می کنند. سایر پیاده سازی های HTTP ، مانند Golang's و Python ، به طور خودکار عنوان Headization را به URI هدایت شده منتقل نمی کنند.

چگونه کار می کند

نمودار دنباله زیر نشان می دهد چه اتفاقی می افتد هنگام تغییر مسیر.

دنباله تغییر مسیر

برای مقایسه ، در اینجا آنچه اتفاق می افتد وقتی که تغییر مسیر رخ نمی دهد.

دنباله تغییر مسیر وجود ندارد

مثال

به طور کلی ، این یک برنامه نویسی خوب است که پیش بینی کنید اجرای HTTP زبان شما ممکن است از عنوان مجوز عبور نکند.

کد شما باید از تغییر مسیر خودکار جلوگیری کند و پس از اضافه کردن هدرها ، دوباره هدایت تماس برقرار کند.

به عنوان مثال ، در Go می توانید این کار را انجام دهید:

customClient := http.Client {
    CheckRedirect: func(redirRequest *http.Request, via []*http.Request)
    error {
        // Go's http.DefaultClient does not forward headers when a redirect 3xx
        // response is received. Thus, the header (which in this case contains the
        // Authorization token) needs to be passed forward to the redirect
        // destinations.
        redirRequest.Header = req.Header

        // Go's http.DefaultClient allows 10 redirects before returning an
        // an error. We have mimicked this default behavior.s
        if len(via) >= 10 {
            return errors.New("stopped after 10 redirects")
        }
        return nil
    },
}

برای مثالهای بیشتر ، ببینید:

مکان تغییر مسیر را ذخیره کنید

همچنین بهترین روش برای ذخیره مکان هدایت شده بر اساس هر کاربر است. به عبارت دیگر ، پس از ورود به سیستم و تغییر مسیر کاربر ، محل اتصال firebase-apiserver03-tah01-iad01.dapi.production.nest.com:9553/ را ذخیره کنید و کلیه درخواستهای بعدی را مستقیماً در این URI ذخیره کنید.

ذخیره مکان هدایت شده موجب صرفه جویی در وقت و جلوگیری از بار غیر ضروری سرور می شود.

برای کسب اطلاعات بیشتر در مورد نحوه ارتباط تغییر مسیرها با محدود کردن نرخ ، به محدودیت های نرخ داده مراجعه کنید.

استفاده از curl برای تست API

هنگام استفاده از curl> = v7.58 ، ممکن است 401 خطای غیرمجاز از تماسهایی به API دریافت کنید که تغییر مسیر را شامل می شوند. از curl v7.58 ، سرصفحات مجوزهای سفارشی به URL هدایت شده توسط API ارسال نمی شوند.

برای این کار در curl> = v7.58 ، از پرچم --location-trusted با هرگونه تماس خط فرمان استفاده کنید.