Thanks all for the votes and feedback.

I'm not sure why I went with the ?mode=config&f=json approach - using the URL 
path would be a better fit, as I'm trying to follow the OGC API approach as 
much as possible. Allowing Mapfile references in the index was added in [1]. 

Daniel - I agree "config" could be confusing, and may be better used for 
working with the CONFIG directly. I'm now no longer that keen on "homepage" 
either! Maybe "index" would be a better fit, similar to the root of a website 
defaulting to index.html.

Alternatively, I've just been testing out allowing the homepage/index at the 
root of MapServer, if the MS_HOMEPAGE_TEMPLATE_DIRECTORY is set. The index 
would then be returned with an empty URL such as
http://localhost/mapserver/. This would also avoid returning the "loadParams(): 
Web application error. No query information to decode. QUERY_STRING is set, but 
empty. " message. 

[1] https://github.com/MapServer/MapServer/pull/6862
--
web:https://geographika.net & https://mapserverstudio.net
mastodon: @geographika@mastodon.social

On Tue, Mar 11, 2025, at 5:46 PM, Lime, Steve D (MNIT) via MapServer-dev wrote:
> The path after the binary name is available to you through an environment 
> variable (PATH_INFO) as part of normal web server processing. We leverage 
> that for OGC API support. In this case, you’d just look at the first 
> component of the PATH_INFO and see if it matches your keyword (e.g. homepage) 
> and then process accordingly (if enabled). Otherwise the first component of 
> PATH_INFO is interpreted as the mapfile (more typically the mapfile alias) – 
> Seth added that support in 8.2 (I think).
>  
> *From:* Richard Greenwood <richard.greenw...@gmail.com> 
> *Sent:* Tuesday, March 11, 2025 11:35 AM
> *To:* Lime, Steve D (MNIT) <steve.l...@state.mn.us>
> *Cc:* Daniel Morissette <dmorisse...@mapgears.com>; 
> mapserver-dev@lists.osgeo.org
> *Subject:* Re: [MapServer-dev] RFC-140 - MapServer Homepage
>  
>  
> On Tue, Mar 11, 2025 at 8:47 AM Lime, Steve D (MNIT) via MapServer-dev 
> <mapserver-dev@lists.osgeo.org> wrote:
>> One idea might be to support a more restful URL, e.g. 
>> https://myhost.com/cgi-bin/mapserv/homepage (or /home or /index or ?) 
>> instead of using a parameter-based approach. Maybe that endpoint name could 
>> be configurable via the config file –  and that could also enable the 
>> functionality.
>  
>  Steve, correct me if I'm wrong, but that seems like it's getting into the 
> realm of the web server. Like how is the mapserv binary to know that it 
> should look for, and process, stuff after the "/"? What happens for example 
> with "cgi-bin/mapserv.fcgi/homepage"? Does Apache know that I want to run the 
> mapserv binary in fcgi mode and also know to pass the "homepage" part to the 
> binary as a parameter? I like the idea of a restful syntax but I can't get my 
> head around the implementation.
>  
> Rich
>  
>>  
>> *From:* MapServer-dev <mapserver-dev-boun...@lists.osgeo.org> *On Behalf Of 
>> *Daniel Morissette via MapServer-dev
>> *Sent:* Monday, March 10, 2025 4:58 PM
>> *To:* mapserver-dev@lists.osgeo.org
>> *Subject:* Re: [MapServer-dev] RFC-140 - MapServer Homepage
>>  
>> Hi everyone,
>>  
>> Sorry for being late with my feedback.  I like the RFC overall, but was 
>> wondering if we could find a better trigger than mode=config for this 
>> feature.  My first reaction when I saw mode=config was that this mode could 
>> be used to deal with the actual config settings in the future if we ever 
>> want to go there so using mode=config today for this homepage feature could 
>> limit our future options.  That being said, I couldn't find any good names 
>> other than mode=homepage to match the MS_HOMEPAGE_TEMPLATE_DIRECTORY 
>> variable that controls it.
>>  
>> I can live with mode=config if we have no better option and am +1 with the 
>> RFC otherwise.
>>  
>> Daniel
>>  
>>  
>>  
>> On 2025-03-09 11: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@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 <se...@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";,
>>>>>  
>>>>>           "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@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@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@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@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";,
>>>>>>> >>              "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@mastodon.social
>>>>>>> >>> _______________________________________________
>>>>>>> >>> MapServer-dev mailing list
>>>>>>> >>> MapServer-dev@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@lists.osgeo.org
>>>>>>> > https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>>>>>>> _______________________________________________
>>>>>>> MapServer-dev mailing list
>>>>>>> MapServer-dev@lists.osgeo.org
>>>>>>> https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>>>>>  
>>>  
>>>  
>>> _______________________________________________
>>> MapServer-dev mailing list
>>> MapServer-dev@lists.osgeo.org
>>> https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>>  
>> 
>> -- 
>> Daniel Morissette
>> Mapgears Inc
>> T: +1 418-696-5056 #201
>> _______________________________________________
>> MapServer-dev mailing list
>> MapServer-dev@lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/mapserver-dev
>> 
> 
>  
> --
> Richard W. Greenwood
> www.greenwoodmap.com
> 
> _______________________________________________
> MapServer-dev mailing list
> MapServer-dev@lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/mapserver-dev
> 
_______________________________________________
MapServer-dev mailing list
MapServer-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/mapserver-dev

Reply via email to