(23-12-1401، 09:39 ب.ظ)hosien نوشته: سلام مهندس شهرکی. شما خوب متوجه شدین و میدونید که من چی میخوام ولی نمیدونم چرا این قسمت از صحبت شما رو متوجه نمیشم " اگه ارتباطتون اینترنتی هست، باید دامنه و هاست داشته باشین و اطلاعات اونجا قرار بگیره و به روشی که گفتم ازطریق دامنهی موردنظر بهش وصل بشین"
یبار دیگه سناریو رو خلاصه بگم شاید نکته ای رو من متوجه نشدم و از قلم افتاده.
من یک صفحه وب دارم که میخوام از اطلاعات دیتابیس شبکه لوکال در صفحه وبم نمایش بدم. حال یکسری کدهای من در هاست اشتراکی قرار دارد که باید متدهای api من که در سرور لوکال هستند و وظیفه اجرای query های دیتابیس محلی رو دارند را فراخوانی کنند. کدهای مربوط به کتابخانه curl در هاست اشتراکی قرار دارد که پارامتر url ان را ip خارجی (my ip سرچ در گوگل) قرار دادم و بعد طبق route ای که نوشتم اسم کلاس کنترلر و بعد اسم متد و در صورت نیاز پارامترهای متد قرار میگیرد.
با تشکر
ببینید چیزی که من از توضیحات شما متوجه شدم اینه:
- شما یک دیتابیس لوکال در شبکهی محلی (شرکت یا منزل) دارین
- شما یک هاست اشتراکی دارین که API شما اونجاست
- شما قصد دارین از هاست اشتراکی برای اتصال به دیتابیس لوکال استفاده کنین
حالا برای دریافت اطلاعات از دیتابیس محلی روی API خودتون در هاست اشتراکی دو روش دارین:
روش اول - اتصال مستقیم به دیتابیس محلی
در این روش باید دیتابیس محلی رو جوری تنظیم کنید که Remote Connection قبول کنه. برای این موضوع باید براساس اینکه دیتابیس شما چیه (MySQL یا SQLServer و...) طبق مستنداتش عمل کنید و اتصال راهدور رو فعال کنید. بعد توی API خودتون که در هاست اشتراکی قرار داره، در قسمت تنظیمات اتصال دیتابیس، آدرس IP و Port و نام کاربری و رمز عبور کامپیوتر محلی رو میدین و API شما به این دیتابیس وصل میشه.
روش دوم - طراحی یک API برای دیتابیس محلی
در این روش بجای اینکه اتصال راهدور برای دیتابیس محلی تنظیم کنید (که نگران لورفتن و اتصال دیگران - بجز خودتون - به این دیتابیس باشین)، یک API روی کامپیوتر محلی پیادهسازی میکنید که API هاست اشتراکی شما اطلاعاتی که میخواد رو با کمک این API (که داخلش از توکن یا سایر روشهای امنیتی برای احراز هویت و مجازکردن دسترسی فقط برای API هاست اشتراکی خودتون استفاده کردین) به اطلاعات دسترسی پیدا کنید. یکیاز بهترین گزینهها برای چنین API واسطی که بخواین به دیتابیس وصل بشین، GraphQL هست که شما توی API هاست اشتراکی خودتون میتونین موقع درخواست اطلاعات، خودتون کوئری بدین و پارامترهای موردنیاز توی جواب رو هم مشخص کنید و لازم نباشه برای هر مدل دیتایی که نیاز دارین، یک Route Endpoint جداگانه توی API طراحی کنید.
باز هم تأکید میکنم نکتهی کلیدی در هر دو روش برای ارتباط پایدار اینه که IP اینترنتی کامپیوتر محلی شما مدام تغییر نکنه وگرنه از همون اول بهتره دنبال تهیهی IP ثابت برای کامپیوتر محلی باشین.