Suggestions about codeforces's API system.

Revision en1, by XenoAmess, 2018-03-13 20:26:29

@MikeMirzayanov

I used codeforces's API system.It is strong,and has good quality.but I think it can become better. Here is my suggestions. 1.Standing of the problemset. http://mirror.codeforces.com/problemset/standings I would be happy to get informations about it,but I havn't find a way to do so. 2.Sending more datas than I need. Resently I was developing a module of a program,which provide active degree of users, and I use http://mirror.codeforces.com/api/user.status?handle=Xeno_Amess&from=1&count=1000000000 (for example) to get data from codeforces.All the data I need was creationTimeSeconds and verdict,but codeforces send me lots of data unuseful to me,like testset,id,author... Actually nearly 19/20 of the data I got was unuseful. This is not only a bad thing to me,but also to codeforces,cause bouth of us cost 19 times more webnetwork bandwidth... Well, for me, download 4M's data or 200k's data has no difference , but for such a big website like codeforces, who have so many users,it might be defferent. So here I suggest that may codeforces provide a grammar to reject some JSONObject? For example,when I use http://mirror.codeforces.com/api/user.status?handle=Xeno_Amess&from=1&count=1, what I get is :

{
  "status": "OK",
  "result": [
    {
      "id": 32479205,
      "contestId": 894,
      "creationTimeSeconds": 1511111995,
      "relativeTimeSeconds": 2147483647,
      "problem": {
        "contestId": 894,
        "index": "D",
        "name": "Ralph And His Tour in Binary Country",
        "type": "PROGRAMMING",
        "points": 2000,
        "tags": [
          "data structures",
          "trees"
        ]
      },
      "author": {
        "contestId": 894,
        "members": [
          {
            "handle": "Xeno_Amess"
          }
        ],
        "participantType": "PRACTICE",
        "ghost": false,
        "startTimeSeconds": 1511099700
      },
      "programmingLanguage": "GNU C++14",
      "verdict": "OK",
      "testset": "TESTS",
      "passedTestCount": 44,
      "timeConsumedMillis": 1091,
      "memoryConsumedBytes": 355635200
    }
  ]
}

And if I use http://mirror.codeforces.com/api/user.status?handle=Xeno_Amess&from=1&count=1&reject=id;contestId;relativeTimeSeconds;problem;author;programmingLanguage;testset;passedTestCount;timeConsumedMillis;memoryConsumedBytes I wish to get

{
  "status": "OK",
  "result": [
    {
      "creationTimeSeconds": 1511111995,
      "verdict": "OK"
    }
  ]
}

I suggest there be a grammar to do such thing.Ofcause,this is just a friendly suggestion.

Tags api, #@mikemiraz

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en1 English XenoAmess 2018-03-13 20:26:29 2799 Initial revision (published)