وب‌سرویس لجستیک

وب سرویس لجستیک

سرویس لجستیک پلتفرم نشان به شما کمک می‌کند تا بتوانید برای ارسال تعداد زیادی بسته به مقاصد معین از مبدا مشخص، با تعدادی وسیله نقلیه مشخص، بهینه‌ترین ترتیب پیمایش مقاصد را داشته باشید.

بدین منظور باید ابتدا مختصات کلیه مقاصد را در یک فایل JSON برای وب سرویس ارسال نمایید.

سپس بعد از آماده شدن پاسخ توسط وب سرویس، آن را دریافت نمایید.

رویه فوق به این دلیل طراحی شده است که آماده سازی پاسخ، به خصوص زمانی که تعداد مقاصد زیاد هستند، ممکن است چند دقیقه طول بکشد (تقریبا برای هر 400 مقصد حدود 1 دقیقه)، بنابراین به خاطر این که در فرایند ارسال و دریافت پاسخ از وب سرویس، به دلایلی همچون قطع ارتباط دچار مشکل نشوید، هر زمان که پاسخ سرویس لجستیک آماده گردد، می‌توانید نتایج را دریافت کنید.

شیوه‌ی فراخوانی:
POST:
	https://api.neshan.org/v4/logistic
Headers:
	Api-Key: YOUR_API_KEY
پارامتر های وروردی:
برای فراخوانی سرویس لجستیک باید یک فایل json با فرمت زیر را ارسال کنید.
{
  "store": [
    36.2654,
    59.5566
  ],
  "destinations": [
    {
      "id": 1,
      "size": 1,
      "location": [59.5652,36.5454]
    },
    {
      "id": 2,
      "size": 2,
      "location": [59.4653,36.3454],
      "deliveryTime": {
        "from": "05:30",
        "to": "13:30"
      }
    },
        {
      "id": 2,
      "size": 2,
      "unload": 1000,
      "location": [59.4653,36.3454],
      "deliveryTime": {
        "from": "05:30",
        "to": "13:30"
      }
    },
    ...
  ],
  "deliveries": [
    {
      "id": 1,
      "capacity": 1,
      "workingTime": {
        "from": "07:30",
        "to": "10:00"
      }
    },
    {
      "id": 1,
      "capacity": 1
    },
    ...
  ]
}
اجزای این پارامترها بصورت زیر می‌باشند:
  • store: مختصات مبدا ارسال ها به صورت latitude,longitude
  • destinations: آرایه‌ای از مقاصد که بایستی بسته‌ها به آن‌ها ارسال شوند:
    • id: یک عدد یکتا جهت اختصاص به هر مرسوله در آرایه
    • size: مشخص کننده سایز لازم برای اختصاص به مرسوله می‌باشد. (این فیلد باتوجه به مساله شما مشخص می‌شود و عددی بدون واحد است. به طور مثال اگر سایز یک تلفن همراه را 1 در نظر بگیریم سایز یک تلویزیون را می‌توانیم 30 در نظر بگیریم)
    • unload: زمان تخلیه بار به ثانیه
    • location: مختصات مقصد مرسوله به صورت latitude,longitude
    • deliveryTime: این فیلد اختیاری بوده و بازه زمانی تحویل مرسوله را مشخص می‌کند.
      • from: شروع بازه زمانی تحویل مرسوله بر حسب ساعت و دقیقه HH:MM
      • to: پایان بازه زمانی تحویل مرسوله بر حسب ساعت و دقیقه HH:MM
  • deliveries: آرایه‌ای از وسیله‌های نقلیه که قصد ارسال مرسوله‌ها را دارند.
    • id: شناسه یکتا اختصاص داده شده به هر وسیله
    • capacity: ظرفیت هر وسیله نقلیه را مشخص می‌کند که حداکثر چند واحد از مرسوله‌ها را می‌تواند ارسال کند.
    • workingTime: این فیلد اختیاری بوده و در صورت دارا بودن مقدار، زمان فعالیت هر وسیله نقلیه را مشخص می کند.
      • from: شروع بازه زمانی فعالیت وسیله نقلیه بر حسب ساعت و دقیقه HH:MM
      • to: پایان بازه زمانی فعالیت وسیله نقلیه بر حسب ساعت و دقیقه HH:MM
فرمت پاسخ:

در صورت صحیح بودن فرمت ارسالی شما پاسخ زیر را دریافت می کنید.

توجه داشته باشید که این آی دی برای دریافت پاسخ استفاده می‌شود.

b8a74a6b-b2c1-474d-97dc-3977b78633a2
و در صورت صحیح نبودن فایل ارسالی شما پیغام زیر را با کد خطای 400 در یافت خواهید کرد:
Error parsing data.
شیوه فراخوانی پاسخ لجستیک:
GET:
	https://api.neshan.org/v4/logistic/result/{id}
Headers:
	Api-Key: YOUR_API_KEY
فرمت پاسخ
{
  "status": "ok",
  "deliveries": [
    {
      "id": 1,
      "destinations": [
        1,
        3,
        4,
        ...
      ]
    }
  ]
}
اجزای این پاسخ بصورت زیر می‌باشند:
  • status:که در صورت موفقیت آمیز بودن فرایند مقدار ok و در غیر این صورت error خواهد بود.
  • deliveries: آرایه‌ای از مقاصد محاسبه شده برای وسیله های نقلیه
    • id:شناسه یکتا وسیله نقلیه متناظر با شناسه ارسال شده همان وسیله نقلیه در هنگام ارسال درخواست.
    • destinations: آرایه‌ای از مقاصد مرسوله‌ها، به ترتیبی که هر وسیله نقلیه بایستی بسته‌ها را به این مقاصد برساند.
در صورت آماده نبودن جواب شما کد 204 را دریافت خواهید کرد
Response not ready yet  
در صورت اشتباه بودن شناسه ارسالی برای دریافت پاسخ شما خطای 404 را دریافت خواهید کرد
UUID not found  
در صورت اشتباه بودن کلید دسترسی شما خطای 484 را دریافت خواهید کرد.
Api key mismatch