open-insight/FRAMEWORKS/STPROCINS/HTTP_SERVICE_SETUP.txt
2024-03-25 15:15:48 -07:00

55 lines
2.9 KiB
Plaintext

Compile insert HTTP_Service_Setup
/***********************************************************************************************************************
This program is proprietary and is not to be used by or disclosed to others, nor is it to be copied without written
permission from SRP Computer Solutions, Inc.
Name : HTTP_Service_Setup
Description : Sets up the current HTTP service by parsing the current URL as needed.
Notes : See the comments added below.
History : (Date, Initials, Notes)
02/25/15 dmb Original programmer. - [SRPFW-84]
02/22/16 dmb Swap hardcoded URL equates with Xlates from SYSENV\SRP_HTTP_FRAMEWORK_SETUP configuration
record. - [SRPFW-103]
02/23/16 dmb Add a work-around fix for IIS web server requests. - [SRPFW-102]
02/25/16 dmb Replace Xlates into SYSENV\SRP_HTTP_FRAMEWORK_SETUP with GetHomeURL and GetAPIRootURL
services. - [SRPFW-108]
03/09/16 dmb Refactor code to be more streamlined. Remove several lines of code and optimize for changes
to the RunHTTPService service. - [SRPFW-112]
***********************************************************************************************************************/
Common /Debugging/ DebugFlag@
// Utility services.
Declare function Error_Services, HTTP_Services, HTTP_Resource_Services, RetStack
Declare subroutine Error_Services, HTTP_Services, HTTP_Resource_Services
// The API URL is fixed for any application but should be customized for the application itself. This is not always
// passed into the request correctly, especially if a proxy service or rewrite rules are being used.
APIURL = HTTP_Services('GetAPIRootURL', True$)
// The Full End Point URL indicates the URL submitted by the client.
FullEndPointURL = HTTP_Services('GetFullEndPointURL')
// The HTTP method (or verb) submitted by the client.
HTTPMethod = HTTP_Services('GetHTTPRequestMethod')
// The Self URL represents the Full End Point URL up to the current segment. This often used in hypermedia responses
// so clients know how to trace back.
LenRemainingURL = Len(RemainingURL)
LenFullEndPointURL = Len(FullEndPointURL)
SelfURL = FullEndPointURL[1, (LenFullEndPointURL - LenRemainingURL)]
If SelfURL[-1, 1] = '/' then SelfURL[-1, 1] = ''
HTTP_Services('SetSelfURL', SelfURL)
// The Next Segment is the segment in the URL path that will come immediately after the current segment. This could
// represent another service or it could represent an Item ID for the current service/resource.
NextSegment = RemainingURL[1, '/']
// Get the name of the current service handler in case it needs to be used for error management.
CurrentServiceHandler = RetStack()<1>