نحوه کارکرد وب سرویس به شکل زیر است، کاربر بر اساس اطلاعات کاربری (نام کاربری و رمز عبور) درخواست توکن احراز هویت (JWT) میکند. توکن دریافت شده در فراخوانی هر سرویسِ داده بعنوان Bearer Token همراه با سرویس به سمت سرور نوآوران ارسال میشود.
اطلاعات زیر جهت درخواست توکن مورد نیاز است:
URL | https://newdata2.nadpco.com/api/v2/Token |
Method | Get |
Authorization Type | Basic Auth |
UserName | Demo |
Password | Demo |
نکته1: علاوه بر نام کاربری و رمز عبور آدرسهای IP اعلان شده توسط کاربر نیز جهت احراز هویت برای دریافت توکن چک میشود.
نکته2: برای نام کاربری Demo آدرس IP چک نمیشود.
پس از دریافت توکن سرویسِ دیتای مورد نظر بصورت زیر فراخوانی میشود.
URL | https://newdata2.nadpco.com/v2/Meeting/Extra?date=13970501 |
Method | Get |
Authorization Type | Bearer Token |
Token | eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyX25hbWUiOiJEZW1vIiwiaWF0IjoxNTM1NDcxOTEyLCJleHAiOjE1MzU0NzU1MTIsImlz cyI6IjEwMDAifQ.Ky8GV4nXYae5Xb-5EFHNRdTglk-OfYnm5dVuRG8TX-g |
بر اساس سطوح دسترسی تعریف شده برای نامکاربری، دیتای مورد نظر به سمت کاربر برگردانده میشود.
نکته: نام کاربری Demo فارغ از پارامترهای ارسالی توسط سرویس جهت فیلتر کردن دادهها، دسترسی به سطح محدودی از دیتا دارد. بنابراین در صورتی که دیتای ارائه شده توسط سرویس با پارامتر ورودی همخوانی نداشت، علت محدودیت در سطح دسترسی میباشد.
using (var client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Clear(); client.BaseAddress = new Uri("https://newdata2.nadpco.com/"); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); var credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", UserName, Password))); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials); var url = "v2/Token/NewToken"; var response = client.GetAsync(url).Result; if (response.IsSuccessStatusCode) { var result = response.Content.ReadAsStringAsync(); return result.Result.ToString(); } }