none
DocumentDb feedResponse.ResponseContinuation JSON RRS feed

  • שאלה

  • Hello,

    When I get continuation token while querying Documents on DocumentDb NoSQL database ,

    I get feedResponse.ResponseContinuation JSON

    {
    "token":"+RID:r+xQAPHUJQANAAAAAAAAAA==#RT:1#TRC:10#FPC:AQ0AAAAAAAAAIAAAAAAAAAA=",
    "range":{"min":"","max":"FF"}
    }

    Could you please explain what each field means? And how the values set/ calculated ? Is the "token" value encrypted?

    Thanks.



    • נערך על-ידי Vika S יום חמישי 23 פברואר 2017 06:39
    יום רביעי 22 פברואר 2017 15:26

כל התגובות

  • Good day

    Since this is Hebrew forum I will answer in Hebrew. If you need help in English please clarify that this is the case

    אהלן

    אם ניראה יותר קוד יהיה יותר קל להבין מה את עושה

    בעקרון על מנת לעבוד עם חשבון documnetDB אנחנו צריכים endpoint+auth key או resource token

    * מכיוון שיש שיטות שונות להתחברות לפעמים אנשים מתבלבלים וחושבים שמדובר בערכים שונים שמקבלים במצבים שונים. בעצם מדובר באפשרויות שונות ופורמטים שונים שאפשרלבחור לעבוד איתם בהתאם לצורך.

    את יכולה לקרוא יותר על השימוש ב resource token בקישור הבא

    https://docs.microsoft.com/en-us/azure/documentdb/documentdb-secure-access-to-data

    *בעקרון endpoint+auth key הוא אימות ברמת הפורטל
    * resource token הוא בעקרון אימות ברמת USR שיוצרים


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]


    יום חמישי 23 פברואר 2017 08:48
    משיב
  • בקישור הבא תוכלי לראות הסבר ודוגמאות כיצד ליצור את האלמנטים של האבטחה - משתמש למשל

    חפשי את השורה הבאה, כדי לראות דוגמה כיצד מוצאים את הערך של ה TOKEN בצורה דינאמית

    Console.WriteLine(docPermission.Id + " has token of: " + docPermission.Token);


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]

    יום חמישי 23 פברואר 2017 09:35
    משיב
  • שלום רונן ,

    לא כל כך הבנתי..

    מדובר במנגנון הpagination של Documentdb אשר משתמש ב-FeedResponse.ResponseContinuation לשליפת תוצאות נוספות אם ישנם ולא הוחזרו. לכן לא הבנתי את ההקשר בין resource token לcontinuation token. 

    האם יש קשר ביניהם?

    תודה


    יום חמישי 23 פברואר 2017 09:43
  • לא אין קשר וכניראה שאני לא מבין את השאלה לך. הבנתי שהשאלה שלך היא רק לגבי מה זה ה TOKEN...

    נסי לצרף קצת יותר קוד כדי שנבין מה את עושה

    החלקיות של הקוד שלך משאירה יותר מדי מקום לניחוד מה בכלל הפרמטרים האלו עושים ולמי הם משוייכים

    * אם תרפי פרוייקט מינימליסטי כדוגמה עובדת אז יהיה קל להבין ולהשחק עם הדברים, לחלופין לפחות חלק יותרמרכזי מהקוד הכולל שימוש ב FeedResponse.ResponseContinuation בצורה זה אתעובדת


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]


    יום חמישי 23 פברואר 2017 10:13
    משיב
  • היי רונן,

    להלו קטע קוד:

    var endpoint = "document db url"; var primaryKey = "document db key"; var client = new DocumentClient(new Uri(endpoint), primaryKey); var collection = UriFactory.CreateDocumentCollectionUri("database id", "collection id"); var options = new FeedOptions { MaxItemCount = 100, RequestContinuation = "continuation token" }; var query = client.CreateDocumentQuery<Document>(collection, options).AsDocumentQuery(); var feedResponse = await query.ExecuteNextAsync<Document>();

    לfeedResponse בשורה האחרונה יש שדה שנקרא   ResponseContinuation .

    כאשר אני מסתכלת ב-debugger אני רואה את הדבר הבא:

    {
    "token":"+RID:r+xQAPHUJQANAAAAAAAAAA==#RT:1#TRC:10#FPC:AQ0AAAAAAAAAIAAAAAAAAAA=",
    "range":{"min":"","max":"FF"}
    }

    אני רוצה להבין מה כל אחד מהשדות האלה אומר?

    איך חושבו? האם יש לוגיקה כלשהי מאחורי השדות הללו שיכולה לשמש אותי ב-business logic של התוכנה שלי? האם הערך של "token" מוצפן?

    תודה מראש

    יום חמישי 23 פברואר 2017 11:29
  • אופס... 

    פספסתי את התשובה שלך :-)
    מצטער אל התגובה המאוחרת

    עכשיו הדברים מובנים
    הרבה יותר קל להבין מה את מתכוונת כאשר אני רואה את הקוד ורואה את ההקשר :-)

    אני אתחיל מהסוף כמו שאני אוהב לבצע הרבה פעמים.

    שאלת האם המידע מקודד והתשובה היא לא
    קידוד והצפנה הם 2 דברים שונים. קידוד הוא תהליך בו אנחנו ממירים את המידע לבינארי, והצפנה היא שימוש במפתח למשל על מנת לשנות את המידע כך שיהיה בילתי ניתן לשימוש.

    נחזור לערך עצמו: הערך ניראה במבט ראשוני בדיוק המפתח (auth key) עליו דיברתי מעל.
    לא חקרתי את הנושא אבל אני מנחש שאם תשווי את הנתון בחשבון ה AZURE שלך תגלי שאת רואה את אותו ערך



    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]    [Linkedin]


    יום רביעי 01 מרץ 2017 20:10
    משיב