[mythtv] Services API for ChannelServices / Channel

Gary Buhrmaster gary.buhrmaster at gmail.com
Wed Dec 4 00:08:12 UTC 2019

On Mon, Dec 2, 2019 at 10:20 PM David Engel <david at istwok.net> wrote:

> I know the API layer allows for version numbers for each entry point.
> Does anyone know if it also does for the abstract types too (i.e
> VideoSource, Channel, etc.)?  IMHO, for each entry point, we should
> strive to support at least two versions -- the one for the current,
> MythTV release and the one for the previous, MythTV release.

In some endpoint APIs in other projects the application
can send along the API they are using to a common
endpoint (ENDPOINT?API=1.2&var1=value1&var2=value2)
and in other projects the URL itself has the version
(.../V1.2/ENDPOINT?var1=value1&var2=value2).  I
have no specific preference, but supporting more
than one endpoint version is important to provide
applications transition periods if one is to claim
API compatibility for more than just "master".  If I
had a vote (and I fully understand I do not), "latest"
and "master" compatibility should be required in
"master", and "latest" and "latest-1" for the release
of "latest".

As with all else, there are certain edge cases where
that is not going to be possible.  But in my experience
if you make it a requirement the developers figure
out a way rather than admit they are not good enough
to make it so.

FWIW, the external recorder supports a version
negotiation process to support an upgrade transition.
It is not the same as the services API, but it
demonstrates a (mostly) seamless transition
to new capabilities while supporting the old,
and I definitely appreciated the work Mr. Poet
made to make that transition viable without a
flag day.

More information about the mythtv-dev mailing list