[MapServer-dev] RFC-140 - MapServer Homepage

jbo-ads at mailo.com jbo-ads at mailo.com
Tue Mar 11 07:00:41 PDT 2025


+1

Jérome


On 3/9/25 16:57, Seth G via MapServer-dev wrote:
> Hi all,
>
> I've added in the feedback from the comments above to RFC 140 [1], see 
> diff of changes at [2].
> I'd like to now formally propose to adopt this RFC, starting with my +1.
>
> Seth
>
> [1] https://mapserver.org/development/rfc/ms-rfc-140.html
> [2] https://github.com/MapServer/MapServer-documentation/pull/1000/files
>
> --
> web:https://geographika.net & https://mapserverstudio.net
> mastodon: @geographika at mastodon.social
>
> On Wed, Jan 22, 2025, at 4:40 PM, Tom Kralidis wrote:
>> Thanks Seth.
>>
>> RE: service-meta: I would still keep to the link conventions (proper 
>> media type for "type", we could add a custom "service-type=WMS" 
>> property), and include an href as well.
>>
>> ..Tom
>>
>> On Wed, Jan 22, 2025 at 10:27 AM Seth G <sethg at geographika.co.uk> wrote:
>>
>>
>>     Thanks Tom - that pygeoapi pull request is good timing!
>>
>>     After reviewing and reading some of the associated documents, I'm
>>     planning to update the RFC with the notes below.
>>
>>     pygeoapi has implemented a JSON service for their homepage at [1]
>>     (pull request at [2].
>>     This implements the api-catalog, a draft IETF (Internet
>>     Engineering Task Force) standard [3].
>>     The Link Set format is described at [4]. It is proposed this
>>     approach is used to generate JSON for a MapServer "homepage".
>>     The generated JSON format can be seen at
>>     https://demo.pygeoapi.io/api-catalog.json, with an extract below:
>>
>>     {
>>       "linkset": [
>>         {
>>           "anchor": "https://demo.pygeoapi.io/master",
>>           "service-desc": [
>>             {
>>               "href": "https://demo.pygeoapi.io/master/openapi?f=json",
>>               "title": "pygeoapi - latest GitHub 'master' version
>>     (JSON)",
>>               "type": "application/vnd.oai.openapi+json"
>>             }
>>           ],
>>           "service-doc": [
>>             {
>>               "href": "https://demo.pygeoapi.io/master/openapi?f=html",
>>               "title": "pygeoapi - latest GitHub 'master' version
>>     (HTML)",
>>               "type": "text/html"
>>             }
>>           ]
>>         },
>>
>>     The spec allows for an additional "service-meta" property "used
>>     to link to additional metadata about the API,
>>     and is primarily intended for machine consumption." I think this
>>     can be used to add any additional properties from Mapfiles
>>     we'd need to generate a MapServer homepage.
>>     "service-doc" isn't mandatory, so WxS service links can ignore
>>     this. An example of the proposed JSON and metadata is shown below:
>>
>>     {
>>       "linkset": [
>>         {
>>           "anchor": "https://demo.mapserver.org/",
>>           "service-desc": [
>>             {
>>               "href":
>>     "https://demo.mapserver.org/cgi-bin/msautotest?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
>>     <https://demo.mapserver.org/cgi-bin/msautotest?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities>",
>>
>>               "title": "World WMS service",
>>               "type": "text/xml"
>>             }
>>           ],
>>           "service-meta": {
>>              {
>>                "type": "wms",
>>                "title": "WMS demo server for MapServer, used in the
>>     msautotest suite",
>>                "keywords": ["layers", "list"],
>>                "mapfile": "msautotest.map",
>>              }
>>           }
>>         },
>>
>>     Seth
>>
>>     [1] https://demo.pygeoapi.io/
>>     [2] https://github.com/geopython/demo.pygeoapi.io/pull/60/files
>>     [3]
>>     https://datatracker.ietf.org/doc/draft-ietf-httpapi-api-catalog/08/
>>     [4] https://www.rfc-editor.org/rfc/rfc9264.html
>>
>>
>>     --
>>     web:https://geographika.net & https://mapserverstudio.net
>>     mastodon: @geographika at mastodon.social
>>
>>     On Sun, Jan 19, 2025, at 5:10 PM, Tom Kralidis wrote:
>>>     Seth: thanks for this RFC.  IETF has api-catalog (draft, [1])
>>>     which I think would be a good candidate for this RFC.  This is
>>>     also an item for review in the OGC API - Records SWG [2].
>>>
>>>     Overall it looks pretty close to the RFC proposal.  We can
>>>     consider using api-catalog as a baseline and we can extend the
>>>     JSON accordingly as needed for anything specific to our needs.
>>>
>>>     Cheers
>>>
>>>     ..Tom
>>>
>>>     [1] https://datatracker.ietf.org/doc/draft-ietf-httpapi-api-catalog
>>>     [2] https://github.com/opengeospatial/ogcapi-records/issues/355
>>>
>>>
>>>
>>>
>>>     On Sat, Jan 18, 2025 at 5:39 PM Seth G via MapServer-dev
>>>     <mapserver-dev at lists.osgeo.org> wrote:
>>>
>>>         Looking again at the landing page JSON at
>>>         https://demo.mapserver.org/cgi-bin/mapserv/localdemo/ogcapi?f=json
>>>         it is in the same format, so as you suggested could simply
>>>         be expanded with links to WxS services, or even CGI
>>>         generated responses. This would also more easily allow
>>>         template reuse.
>>>
>>>         Seth
>>>
>>>         --
>>>         web:https://geographika.net & https://mapserverstudio.net
>>>         mastodon: @geographika at mastodon.social
>>>
>>>         On Sat, Jan 18, 2025, at 11:33 PM, Seth G via MapServer-dev
>>>         wrote:
>>>         > Hi Even,
>>>         >
>>>         > Thanks for your valuable feedback.
>>>         >
>>>         > The homepage would be a "superset" of all available
>>>         Mapfiles in a
>>>         > MapServer deployment, as listed in the CONFIG file. Each
>>>         individual
>>>         > Mapfile would still have its own OGC API landing page, so
>>>         the homepage
>>>         > is best described as a directory of all landing pages.
>>>         >
>>>         > As most MapServer deployments will likely be serving out a
>>>         combination
>>>         > of WxS and new OGC API services for some time to come, it
>>>         will allow
>>>         > both types to be listed together (I'm unaware of a OGC API
>>>         spec that
>>>         > would cover this).
>>>         >
>>>         > In regard to the JSON used for links, I was modelling it
>>>         as closely as
>>>         > possible to OGC API conventions. Looking at the pygeoapi
>>>         demo home
>>>         > page, it provides a set of links in a common format, so
>>>         I'll likely
>>>         > switch to this format/approach:
>>>         >
>>>         > https://demo.pygeoapi.io/stable?f=json
>>>         >
>>>         > A few of the "rel" values are defined as below, and can be
>>>         reused:
>>>         >
>>>         > alternate     Provides an alternate representation (e.g.,
>>>         HTML version of a
>>>         > resource).
>>>         > service-desc  Links to the machine-readable API
>>>         description (e.g.,
>>>         > OpenAPI JSON).
>>>         > service-doc   Links to the human-readable API
>>>         documentation (e.g.,
>>>         > OpenAPI HTML).
>>>         > conformance   Lists the standards and conformance classes
>>>         supported by
>>>         > the API.
>>>         >
>>>         > I'll update the RFC with the above,
>>>         >
>>>         > Seth
>>>         >
>>>         > --
>>>         > web:https://geographika.net & https://mapserverstudio.net
>>>         > mastodon: @geographika at mastodon.social
>>>         >
>>>         > On Sat, Jan 18, 2025, at 12:39 PM, Even Rouault wrote:
>>>         >> Seth,
>>>         >>
>>>         >> Thanks for putting this together. I'm wondering how much
>>>         your proposal
>>>         >> relates/intersects with the concept of the landing page
>>>         of OGC API
>>>         >> services ? You mention some connection with it, but it is not
>>>         >> immediately clear to me  the exact nature of the
>>>         connection. Perhaps it
>>>         >> is just a matter of clarifying. I have put zero thoughts
>>>         in it, but it
>>>         >> would feel weird to invent a MapServer specific thing, so
>>>         I'm naively
>>>         >> wondering if we can't we just adopt the landing page
>>>         formalism (for the
>>>         >> JSON part), and potentially extend it by exposing old WxS
>>>         services as
>>>         >> well in the links as you suggest? I'm also wondering if
>>>         there's some
>>>         >> best practice used by other projects on how to expose for
>>>         things like
>>>         >>
>>>         >> {
>>>         >>              "href":
>>>         >>
>>>         "https://demo.mapserver.org/cgi-bin/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities
>>>         <https://demo.mapserver.org/cgi-bin/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities>",
>>>         >>              "title": "GetCapabilities",
>>>         >>              "type": "WMS"
>>>         >>          },
>>>         >>
>>>         >> so they can be interoperably consumed.
>>>         >>
>>>         >> Even
>>>         >>
>>>         >> Le 18/01/2025 à 09:11, Seth G via MapServer-dev a écrit :
>>>         >>> Hi devs,
>>>         >>>
>>>         >>> I've drafted an RFC with an approach of creating a
>>>         MapServer homepage based on the MAPs referenced in a
>>>         mapserver.conf file. This will allow MapServer installations
>>>         to easily advertise available services, dynamically.
>>>         >>>
>>>         >>> Text available in pull request at
>>>         https://github.com/MapServer/MapServer-documentation/pull/996
>>>         >>>
>>>         >>> Comments and thoughts appreciated,
>>>         >>> Thanks,
>>>         >>>
>>>         >>> Seth
>>>         >>>
>>>         >>> --
>>>         >>> web:https://geographika.net & https://mapserverstudio.net
>>>         >>> mastodon: @geographika at mastodon.social
>>>         >>> _______________________________________________
>>>         >>> MapServer-dev mailing list
>>>         >>> MapServer-dev at lists.osgeo.org
>>>         >>> https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>>>         >>
>>>         >> --
>>>         >> http://www.spatialys.com
>>>         >> My software is free, but my time generally not.
>>>         >> Butcher of all kinds of standards, open or closed
>>>         formats. At the end,
>>>         >> this is just about bytes.
>>>         > _______________________________________________
>>>         > MapServer-dev mailing list
>>>         > MapServer-dev at lists.osgeo.org
>>>         > https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>>>         _______________________________________________
>>>         MapServer-dev mailing list
>>>         MapServer-dev at lists.osgeo.org
>>>         https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>>>
>>
>
>
> _______________________________________________
> MapServer-dev mailing list
> MapServer-dev at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/mapserver-dev/attachments/20250311/6f4a1ad2/attachment-0001.htm>


More information about the MapServer-dev mailing list