علیرضا کفایتی
3 سال پیش توسط علیرضا کفایتی مطرح شد
11 پاسخ

api کجا قرار می گیرد

سلام
معمولا api رو در کجا قرار می دهند ؟ یک سرور و دامنه جدا از فرانت اند ؟ یا یک ساب دامین مثلا api.example.com ؟
بعضی شرکت های معتبر رو نگاه کردم در سرور و دامنه ای جدا داشتند . من خودم معمولا در ساب دامین دارم . ولی شک دارم که کار درستی می کردم یا خیر ..!
ممنون میشوم راهنمایی بفرمایید


ثبت پرسش جدید
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
3

سلام

اول اینکه اجباری به جداسازی سرور نیست.
دوم اینکه مرسوم هست از یکی از دو حالت های زیر استفاده می‌کنند:

api.example.com
example.com/api

برای هر یک از دو حالت هم تنظیماتش لازم هست در لایه وب سرورتون انجام بشه. یعنی به محض دریافت ریکوئست به یک URL خاص این وظیفه وب سرور هست که بفهمه آیا باید درخواست رو به API برسونه یا اپلیکیشن فرانت اندیتون.

بسته به شرایطتون می‌تونید سرچ کنید و به پاسخ های زیادی برسید. بعنوان مثال اگر از وب سرور Nginx و حالت زیردامنه استفاده بکنید تنظیماتش میشه یک چیزی تو این مایه ها:

#laravel.conf
server {
    listen 80;
    root /var/www/html/project_name/public;
    index  index.php index.html index.htm;
    server_name  api.example.com www.api.example.com;

    location / {
        try_files $uri $uri/ /index.php?$query_string;        
    }

    location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
       fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

}
#vue.conf
server {
  listen 80;
  index index.html;
  server_name example.com www.example.com;

  location / {
      proxy_pass http://localhost:8080;
  }
}

mmj-sys
تخصص : داش متخصص چیه من پروفسورم .
@mmj.sys 3 سال پیش مطرح شد
0

@gomnam
معمولا روی ساب دامین


محمدصادق عبداللهی
تخصص : junior full stack developer
@mimsadAlef 3 سال پیش مطرح شد
0

مي تونيد روي site.ir/api بزاريد :-) اينجوري قشنگ تره


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
-3

@mimsadAlef
خب برادر مشکل اینه که نمیتونم این کار رو بکنم . (مگر اینکه در دامنه و سرور جدا باشه)
چون درخواست ها ارسال میشه به vuejs
یعنی نمیتونم 2 تا فایل index داشته باشم (یکی مال لاراول و یکی مال vuejs)


سهیل حیدری
@hbr 3 سال پیش مطرح شد
-4

بستگی به ساختار و ماهیت پروژه داره.


محسن مهری
تخصص : برنامه نویس back-end با زبان...
@mohsen.mehri6101 3 سال پیش مطرح شد
3

درود ..فعلا هر جا هر طوری میتونی بیار بالا .بعدا خیلی راحت میتونی انتقال بدی یا تغییر بدی .نمون روی این مساله .


محمدصادق عبداللهی
تخصص : junior full stack developer
@mimsadAlef 3 سال پیش مطرح شد
0

قطعا براي اين دو راهكاري هست
چون خيلي ها تو سايتشون لاراول و vue استفاده مي كنند
@hesammousavi يه راهنمايي بكنيد


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
3

سلام

اول اینکه اجباری به جداسازی سرور نیست.
دوم اینکه مرسوم هست از یکی از دو حالت های زیر استفاده می‌کنند:

api.example.com
example.com/api

برای هر یک از دو حالت هم تنظیماتش لازم هست در لایه وب سرورتون انجام بشه. یعنی به محض دریافت ریکوئست به یک URL خاص این وظیفه وب سرور هست که بفهمه آیا باید درخواست رو به API برسونه یا اپلیکیشن فرانت اندیتون.

بسته به شرایطتون می‌تونید سرچ کنید و به پاسخ های زیادی برسید. بعنوان مثال اگر از وب سرور Nginx و حالت زیردامنه استفاده بکنید تنظیماتش میشه یک چیزی تو این مایه ها:

#laravel.conf
server {
    listen 80;
    root /var/www/html/project_name/public;
    index  index.php index.html index.htm;
    server_name  api.example.com www.api.example.com;

    location / {
        try_files $uri $uri/ /index.php?$query_string;        
    }

    location ~ \.php$ {
       include snippets/fastcgi-php.conf;
       fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
       fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

}
#vue.conf
server {
  listen 80;
  index index.html;
  server_name example.com www.example.com;

  location / {
      proxy_pass http://localhost:8080;
  }
}

علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
-1

@mhyeganeh
خیلی ممنون هستم از راهنمایی تون ، متاسفانه خیلی روی این مباحث مربوط به سرور کار نکردم و حس می کنم که نیاز دارم کار کنم ...
همین مورد رو برای وب سرور Apache در فایل .htaccess چجوری میشه پیاده سازی کرد ؟


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش آپدیت شد
4

چیز پیچیده و غیرقابل یادگیری نداره و اگر بصورت فریلنس یا فول استک کار می‌کنید به نظرم لازمه حتما روی این بخش هم وقت بگذارید و در حد نیاز مسلط بشید. چون خیلی لازمه.

برای Apache هم خودتون سرچ کنید دیگه 😏😉

ایده کلیش اینه که باید برای هر server_name یا همون دامنه یکسری کانفیگ ها انجام بدید و به وب سرور بفهمونید هر وقت درخواستی برای اون آدرس اومد باهاش چکار کنه.


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
-1

@mhyeganeh
خیلی ممنونم ...
همچنین ممنونم که به فکر سرچ کردن و تحقیقات ما هم هستید 🤣


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش آپدیت شد
3

سلامت باشید...
هدف بنده و سایر دوستان از جمله خود جنابعالی کمک به هم دیگه و ارتقای سطح جامعه برنامه نویسان ایران هست.
و به نظرم برای رسیدن به این هدف باید سعی کنیم حتی المقدور ماهیگیری یاد بدیم و نه ماهی آماده 😉


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام