برای کمک به شروع بهروزرسانیهای زمان واقعی، میتوانید کلاینت API بهروزرسانی زمان واقعی جاوا ما را دانلود کنید.
پیش نیاز:
حساب سرویس خود را ایجاد کنید، کلید خصوصی خود را دانلود کنید.
شروع کنید:
- کتابخانه سرویس گیرنده جاوا را دانلود کنید و فایل را از حالت فشرده خارج کنید تا بسته "mapsbooking" را دریافت کنید.
یک پروژه جاوا در IDE خود ایجاد کنید، کدهای نمونه InventoryUpdate.java و BookingNotification.java را از این مخزن دانلود کنید:
git clone https://maps-booking.googlesource.com/java-maps-booking-api-example
و آنها را به پروژه جاوا خود در پوشه src وارد کنید.
- یک کپی از کلید خصوصی خود (فایل JSON) در دایرکتوری src تهیه کنید.
- Java Client Library را به وابستگیهای پروژه خود اضافه کنید (فایلهای jar را در فهرست راهنمای mapsbooking و libs-sources قرار دهید).
- در هر دو فایل جاوا، TODO ها را دنبال کنید تا پیاده سازی های خود را کامل کنید
جزئیات بیشتر در مورد REST API را می توانید در اینجا بیابید .
عیب یابی:
هنگام تلاش برای ایجاد یک تاجر/سرویس جدید با یک merchantId یا serviceId موجود، پیام خطای زیر را دریافت خواهید کرد:
409 Conflict { “code” : 409, “errors” : [{ “domain” : “global”, “message” : “Requested entity already exists”, “reason” : “alreadyExists”, “debugInfo” : “detail: "[ORIGINAL ERROR] generic::already_exists: ...”\n" }], “message” : “Requested entity already exists”, “status” : “ALREADY_EXISTS” }
- هنگام برقراری تماس در دسترس بودن جایگزین با شناسه merchantId یا serviceId نامعتبر، تماس پیام خطا ارسال نمی کند. این به این دلیل است که تغییرات در اسلات های دسترسی از طریق RTU از اجرای خارج از دستور پشتیبانی می کند و بنابراین با یک merchantId یا serviceId مرتبط نیست. با این حال، شکافهای موجود در درخواست به دلیل نامعتبر بودن شناسه merchantId یا serviceId در تولید ارائه نمیشوند. برای اینکه اسلاتها قابل استفاده باشند، لطفاً تاجر یا سرویس گمشده را از طریق RTU یا فیدها اضافه کنید.
- در همه توابع بهروزرسانی، پارامتر «updateMask» باید در قالب FieldMask باشد تا فیلدهایی را که باید بهروزرسانی شوند مشخص شود. API باید فقط مقادیر فیلدها را همانطور که در ماسک مشخص شده تغییر دهد و بقیه را دست نخورده بگذارد. اگر رشته updateMask اشتباه را پاس کنید، به روز رسانی اعمال نخواهد شد. اگر یک فیلد ماسک در به روز رسانی وجود نداشته باشد، این عملیات برای همه فیلدها اعمال می شود (مثل اینکه یک فیلد ماسک از همه فیلدها مشخص شده است). بنابراین اگر می خواهید همه فیلدها را به روز کنید، کافیست updateMask را خالی قرار دهید.
- هر فیلدی که مقدار صفر داشته باشد در پاسخ نشان داده نمی شود.