در مقاله قبل در مورد api ارائه شده توسط بکتوری توضیح دادیم در این مقاله در مورد آشنایی با rest دروب سرویس بکتوری توضیح میدهیم.
آشنایی با REST
این مستند جهت آشنایی توسعهدهندگان بکتوری با ساختار REST تهیه شده است. معماری REST نوعی پروتوکل و قرارداد رایج صحبت بین کلاینتهای موبایل و وبسایتها با سرور هستند(آشنایی با rest دروب سرویس بکتوری). تمامی سرویسهای بکتوری بر اساس این مفهوم کار میکنند و در صورتی که نیاز دارید تا مستقیما با سرویسهای بکتوری در ارتباط باشید، باید با این مفاهیم آشنا شوید.
لازم به ذکر است که سرویسهای بکتوری به صورت SDK در پلتفرمهایی مانند Android و یا Unity قابل دسترس است و در صورتی که بر روی یکی از این پلتفرمها اپلیکیشن موبایل خود را پیادهسازی میکنید، نیازی به مطالعه و یادگیری این مستند نخواهید داشت. در واقع مستند فعلی برای توسعهدهندگانی است که در پلتفرمهایی مانند B4A، iOS و … قصد تولید نرمافزار دارند و SDK مناسبی توسط بکتوری در اختیار آنها قرار نگرفته است. توجه به این نکته اهمیت دارد که تمام تواناییهاییکه SDKها در اندروید یا Unity در اختیار توسعهدهندگان قرار میدهند قابل پیادهسازی توسط توسعهدهندگان در پلتفرمهای دیگر (از طریق مطالعه این مستد و مستندات REST هر یک از سرویسها) نیز هست و SDK صرفا یک لایه سادهسازی در استفاده از این سرویسهای در اختیار شما میگذارد.
پیشنیازها
جهت اتصال به بکتوری از طریقی به غیر از SDK، بایست تا حدودی با مفاهیم زیر آشنایی داشته باشید:
معماری REST
مدل داده JSON
معماری REST
جهت آشنایی دقیق و کامل با معماری REST میتوانید صفحه ویکیپدیای REST را مطالعه کنید.
در ادامه این معماری به طور کامل توضیح داده خواهد شد.
به طور کلی اگر شما (به هر طریقی) قصد پیادهسازی و یا استفاده از سرور را داشته باشید، نیازمند یک قرارداد صحبت بین کلاینت (گوشی موبایل، مرورگر کاربر وبسایت شما، ساعت هوشمند، …) و سرور هستیم. به این قرارداد پروتوکل گفته میشود. این پروتوکل کمک میکند تا شما به سرور بفهمانید قصد انجام چه عملی و یا دریافت چه اطلاعاتی از سرور را دارید. اعمال مختلف میتوانند شامل ثبتنام، ورود کاربر، لیست آهنگهای برتر اپ، جملات محبوب و … باشد. معمولا سرورها (چه آنهایی که خودتان و یا تیم شما پیادهسازی میکنند، چه بکتوری و چه هر سرویسدهنده دیگر) بر روی اینترنت هستند و گوشی موبایل جهت اتصال به سرور و انجام عمل دلخواه خود نیاز دارد تا یک اتصال با آنها برقرار کند. معمولا گوشی درخواست را آغاز میکند و متن درخواست خود را در یک قالب توافق شده بین خود و سرور، به سرور اعلام میکند و سرور پردازش لازم را انجام داده و پاسخ را برمیگرداند. رایجترین نوع پروتوکلی که در اپلیکیشنهای موبایل یا وب مورد استفاده است پروتوکل Http است. پروتوکل Http مبتنی بر متن است و با استفاده از کلمات و عبارات قابل فهم یک مکانیزم عمومی برای تبادل درخواست بین کلاینت و سرور را فراهم می کند. سرویسهای بکتوری نیز مبتنی بر این پروتوکل هستند.
نمونه از درخواست HTTP
همه شما حتما با سایت digikala آشنایی دارید. وقتی در مرورگر کروم خود صفحهی وبسایت دیجیکالا را باز کنید، درخواستی به شکل زیر توسط مرورگر شما، برای سرورهای دیجیکالا ارسال خواهد شد:
GET / HTTP/1.1
Host: www.digikala.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8,fa;q=0.6
Cookie: ASP.NET_SessionId=3pjco…
توجه:
هر یک از کلیدها و Idهای بالا را میتوانید با ورود به داشبورد پروژه خود و کلیک بر روی بخش «کلیدها» استخراج کنید. دقت کنید که سرویسهای «فایل» و «بلادرنگ» حتما باید در ابتدا فعالسازی شوند؛ در غیر این صورت، کلیدهای آنها در بخش کلیدهای داشبورد مشاهده نخواهد شد. (برای فعالسازی این سرویسها کافیست از طریق منوی پنل وارد سرویس مربوطه شوید تا در آنجا دکمهی فعالسازی را مشاهده کنید.)
ii. کلاس Application خودتان را به AndroidManifest معرفی کنید. برای این کار در application tag یک attribute جدید با نام name اضافه کنید و آدرس Application خودتان را بدهید.
<application
android:name=”.MainApplication”
…
/>
iii. همه چیز آماده است. حال شما با مراجعه به مستندات هر یک از سرویسها میتوانید از آنها در محیط اندروید استفاده کنید(آشنایی با rest دروب سرویس بکتوری).
راه اندازی در حالت عیبیابی (DEBUG MODE)
با فعال کردن حالت عیبیابی، SDK اقدام به تولید یک سری گزارش (Log) از رویدادهایی که رخ میدهند میکند. محتوای درخواست و جواب های Http که توسط SDK ارسال و دریافت میشود، نمونه ای از این موارد است. جهت راهاندازی در حالت عیبیابی کد زیر را به کلاس Application خودتان به صورت زیر اضافه کنید:
public class MainApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
BacktoryClient.setDebugMode(BuildConfig.DEBUG);
BacktoryClient.setLogLevel(LogLevel.Debug); // Logs with debug priority
// or higher. Includes network requests.
BacktoryClient.init(…);
}
}
استفاده از PROGUARD
از نسخهی 0.6.6 به بعد sdk بکتوری، قواعد Proguard به صورت خودکار همراه SDK به پروژهی شما اضافه میشود. همچنین دقت کنید زمان فراخوانی تابع رایانش، کلاسهایی که برای ورودی و خروجی تابع تعریف میکنید، را باید با استفاده از دستور keepclassmembers از تغییرات مصون نگه دارید. به طور مثال فراخوانی تابع رایانش زیر را در نظر بگیرید:
BacktoryCloudCode.runInBackground(“functionName”, new MyCloudcodeReq(arg1, arg2),
MyCloudcodeResponse.class, backtoryCallback);
در این حال میبایست هر دو کلاس MyCloudcodeReq و MyCloudcodeResponse را به فایل قواعد Proguard به صورت زیر اضافه کنید (آدرس کامل کلاسها باید گذاشته شود.)
-keepclassmembers class com.example.MyCloudcodeReq
-keepclassmembers class com.example.MyCloudcodeResponse
در این مقاله در مورد آشنایی با rest دروب سرویس بکتوری توضیح دادیم در مقاله بعد در مورد مستندات وب سرویس بکتوری توضیح میدهیم.
- برچسب ها:
- api
- Web API
- ای پی ای
- مستندات بکتوری
- وب سرویس