It is important to understand both the migration options and how to preserve or adapt your REST service URLs when you are transitioning from the Classic Application Server (with REST Adapter) to Progress Application Server (PAS) for OpenEdge.

REST clients for PAS for OpenEdge always connect using the session-free application model, which differs from the session-managed model used in Classic Application Server. This change improves scalability and performance but requires some adjustments during migration.

When you migrate REST services from Classic Application Server/REST Adapter to PAS for OpenEdge, you can use the same URL for your REST Service. To do this you simply configure your PAS for OpenEdge instance and ABL web application name, this ensures the URLs are identical to the ones used to access the Classic Application Server.

You can migrate the existing REST ABL Services to the PAS for OpenEdge REST transport in the following ways:
  1. Use existing REST service archives—You can deploy your existing .paar files directly into a PAS for OpenEdge instance using the deployREST command.

    This method retains the same URL scheme as theClassic Application Server, provided you configure the PAS for OpenEdge instance and ABL web application name appropriately.

  2. Use Progress Developer Studio for OpenEdge (PDSOE) to create new REST services using the same or a new URL scheme.
    • Annotations (recommended)—Use the Define Service Interface wizard
    • GUI Mapper—Use the REST Expose Editor for a visual approach.

    For more information about annotations, see Annotate ABL resources using the Define Service Interface wizard.

  3. Convert to WEB services using the built-in Progress OpenEdge Data Object Handler (DOH) or you can write your own custom WebHandler. The WEB transport uses ABL code to dispatch HTTP/S requests to the right business logic. You can annotate your source code to create a Progress Data Object (PDO) service or define the service using a map file.

REST client connections

When using the REST transport described in Options 1 and 2 above, you can use the same URLs by naming the ABL web application the same as your rest-app-name used for Classic Application Server. You can also omit (ROOT) or change the web application name to define a new URL scheme.

The syntax and examples of supported URLs for REST clients are:
  • Syntax—https://host:port/[web-app]/rest/service-name/resource-path
  • Example—https://localhost:8810/samplewebapp/rest/CRService/Customer
You can convert a REST client from Classic Application Server to REST as shown below. Note that thereis no change to the URL.
Classic Application Server https://host:port/CustMaint/rest/CustomerSvc/CustConnect
Root Web App https://host:port/rest/CustomerSvc/CustConnect
Named Web App https://host:port/CustMaint/rest/CustomerSvc/CustConnect

For more information about PAS for OpenEdge REST services, see Run-time architecture and data access and Develop an ABL service using the REST transport.

Preserving or Adapting REST URLs

The only difference between the Classic Application Server and PAS for OpenEdge regarding the URLs used to connect to and access OpenEdge REST and Data Object Services, is allowing access to the default ROOT ABL web application on PAS for OpenEdge.

For example, a URL to access an OpenEdge REST web service for the Classic Application Server using the OpenEdge Web Server might be the following:
http://host:port/CustomerMaint/rest/CustomerSvc/CustConnect
After migrating the same ABL code to the asbroker1WebAppl.war ABL web application on a PAS for OpenEdge instance, you would use this URL:
http://host:port/asbroker1WebAppl/rest/CustomerSvc/CustConnect
Note: This example uses the same WAR file name as in the previous example of a classic AIA URL migration (see Migrate AIA URLs to use the APSV transport), instead of using a file name that might match the original REST web application for the classic AppServer on the OE Web Server (CustomerMaint.war). This is to illustrate that all three web connection transports can be supported in a single ABL web application on PAS for OpenEdge as long as they can all access the same server ABL code base.
You could also rename the ABL web application to the file name of the original REST web application for the classic AppServer (CustomerMaint.war), and use a URL almost identical to the original (shown in the previous example), or after migrating the ABL code to the default ROOT ABL web application, you could use this URL:
http://host:port/rest/CustomerSvc/CustConnect

Note that OpenEdge ABL does not have a native REST CONNECT( ) method at this time. However, you can test a REST connection through a browser.

For more information about creating and connecting to both REST web services and Data Object Services, see the topics on these services in Develop ABL Services.