>
>
> The vast majority of API users use a framework like pywikipedia that
> has already solved the continuation problem.
>

Not exactly correct - pywikipediabot have not solved it at all, instead
they structured their library to avoid the whole problem and to get
individual properties data separately with generators, which causes a much
heavier server load. You can't ask pywiki to get page properties (links,
categories, etc)- in fact it doesn't even perform
prop=links|categories|.... Instead it uses a much more expensive
generator=pagelinks for each page you query. Those bots that want this
functionality have to go low level direct api call, and handle this issue
by hand.

There are 30 frameworks listed on the docs site. If even the top one
ignores this fundamental issue, how many do you think implement it
correctly? I just spent considerable time trying to implement a generic
query-agnostic continue, and was forced to do it in a very hacky way (like
detecting /g..continue/ parameter, cutting it out, removing some prop=..
and ignoring warnings server sends due to me sending unneeded parameters.
Not a good generic solution)

> your example - run allpages generator with the gaplimit=1
>
> Yes, that was a contrived example to show that someone might not want
> to be forced into following the prop continues to the end..
>
> The problem with versions is this: what if someone wants "version 1"
> of query-continue (because "version 2" removed all features), but the
> latest version of the rest of the API?
>
> But wouldn't we want people NOT to use API in a inefficient way, to
prevent extra server load? But anyway, I agree, lets not remove abilities -
lets introduce a version parameter, and do a simple approach by default.
 Those who want use the old legacy, will add &legacycontirue="" parameter.

IMO, we need the version support regardless - it will allow us to
restructure parameters and resulting data based on the client's version=xx
request. Plus we can finally require 'agent' from all the clients (current
javascript clients have no way to pass in the agent string). There was a
discussion with Roan a few years ago about it, and versioning is needed in
order to do most of these things.
http://www.mediawiki.org/wiki/API/REST_proposal/Kickoff_meeting_notes
_______________________________________________
Mediawiki-api mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-api

Reply via email to