Product overview · Version 1.5.3
Expose · Describe · Observe

REST APIs for classic ABAP.

Configuration-driven inbound and outbound integration with generated OpenAPI, interactive documentation and unified logging.

OpenAPI 3.0.3 ABAP 7.40 SP08+ Inbound + Outbound
Why ZREST

Your APIs should differ in business logic — not plumbing.

Rebuilt per service
01
Route and bindCustom URL matching, conversions and body parsing.
02
DescribeDocumentation drifts away from implementation.
03
OperateErrors, logging and targets behave differently.
Centralized by ZREST
01
One request pipelineConfiguration selects the ABAP operation.
02
Contract from codeSignatures and DDIC types become OpenAPI.
03
Shared operating modelConsistent responses, logs and connection setup.
Product model

One framework for both directions

INBOUND REST

Publish ABAP methods as documented APIs

Route · Bind · Execute · Respond
HTTPICFABAP
OUTBOUND REST

Call external APIs through one contract

Configure · Connect · Call · Observe
ABAPURL / SM59API
CUSTOMIZINGTYPE MAPPINGERROR HANDLINGLOGGING
Architecture

A small core coordinates the full API lifecycle

INBOUND LANE API Consumer HTTP / JSON SAP ICF /api/demo ZCL_REST_SWAGGER Coordinator ROUTE BIND EXECUTE RESPOND ABAP Handler Methods + DDIC types OpenAPI 3.0.3 Swagger UI + operationId Operational Logs Saved requests use a separate audit OUTBOUND LANE ABAP Application ZCL_REST_API_CALLER Configure · connect · call · log URL / SM59 Connection mode External API
Inbound request flow

From an HTTP request to a typed ABAP call

Live verified · 02 Sep 2026
01 · AcceptSAP ICF
02 · MatchMethod + URL pattern
03 · BindPath · query · body
04 · ExecutePublic ABAP method
05 · RespondStatus · headers · body
06 · ObserveOperation policy
Route from configurationHTTP method and the configured URL regex select one operation and handler method.
Bind by HTTP semanticsPath values work for every method. GET reads query values; non-GET input comes from the body where defined.
Return typed resultsThe responder emits JSON, text or binary content with the operation's status and response type.
Separate saved route/swagger.saved branches before the router, binder and normal operation logging.
Outbound request flow

One call contract. Two connection modes.

Implemented · S-mode acceptance pending
01 · ResolveZRESTC002 policy
02 · ConnectU: URL · S: SM59
03 · CallURI · headers · body
04 · ReturnBAPIRET2 + HTTP code
05 · LogR/3*ZREST_LOG
Configuration firstTarget, method, authentication, proxy, fixed headers, timeout and logging policy are resolved centrally.
Raw or typed resultThe caller receives BAPIRET2, the HTTP status and a raw or deserialized response.
Transaction-aware logDefault outbound logging uses COMMIT CONNECTION, so a caller rollback does not remove the log.
Recorded boundaryThe live demo uses U mode. A target-system U/S runtime comparison has not yet been recorded.
Live SAP configuration

One inbound service maps eleven real operations

sapides.onderyazilim.com · ZRESTC001 · client 800
Live English SAP WebGUI display of eleven inbound ZREST operations
SAP customizing · ZRESTC002

Targets are configured—not hard-coded

sapides.onderyazilim.com · ZRESTC002 · client 800
Live English SAP WebGUI outbound ZREST configuration in Horizon Dark
Generated contract

Configuration and code become the OpenAPI contract

01 · Public ABAP signatureAPI_GET_PARTNER_LIST
sapides.onderyazilim.com · SE24 · ZCL_REST_DEMO_INBOUND
Live SAP SE24 signature and parameter descriptions for API_GET_PARTNER_LIST
Typed filters, bounded row count and a typed partner-list response.
02 · Generated operationGET /partners
The same parameter names, default maxRows = 20 and response 200.
Generated type contract

DDIC metadata becomes an API contract

01 · DDIC sourceFixed values + descriptions
sapides.onderyazilim.com · SE11 · client 800
Live English SAP WebGUI DDIC partner type fixed values in Horizon Dark
Domain semantics remain in the SAP type system.
02 · Generated parameterGET /partnertypes/{partnerType}
Descriptions, allowed values and reusable schemas reach OpenAPI.
CREATED_FROM → createdFrom MAX_ROWS DEFAULT 20 → maxRows · default 20 domain fixed values → enum ABAP structures → component schemas
Live demo footprint

A focused demo proves the flow end to end

7API pathsCustomer, vendor, partner and export routes.
11OperationsGET, POST, PUT, PATCH and DELETE.
4TagsA navigable generated API surface.
15SchemasRequest and response models from ABAP types.
Demo-system data only · no production business data
Generated Swagger UI

Explore every operation in one place

Browser-native testing

Try the API where it runs

Built-in request library

Save, reuse and manage request variants

Centralized operational logging

Inspect API calls—and decide what to record

sapides.onderyazilim.com · ZRESTLOG · client 800
Live English SAP WebGUI ZRESTLOG metadata results list
Retention and cleanup

Retention is explicit and controlled per operation

sapides.onderyazilim.com · ZREST_API_DELETE_LOG · client 800
Live English SAP WebGUI ZREST log cleanup selection screen in Horizon Dark
Deployment path

A short path from repository to a live endpoint

Current demo verified · landscape steps apply
01
ImportPull the repository into package ZREST with abapGit.
02
Check prerequisitesConfirm ABAP 7.40 SP08, ICF/HTTP access and the transport approach.
03
ActivateActivate repository and required table-maintenance objects.
04
PublishCreate and activate the matching SICF node and assign the handler.
05
Configure + proveMaintain ZRESTC001 / ZRESTC002, then run setup audit and E2E.
sapides.onderyazilim.com · SICF /api/demo · client 800
Live English SAP WebGUI SICF demo service configuration in Horizon Dark
Verification evidence

Validated in source and in the target SAP system

Source inventory

Static and unit-test surface

219ABAP Unit methods in 11 test includes
247files checked by the recorded abaplint run
0recorded static findings

check_syntax=false; generated SE54 includes are excluded. SAP activation and tests provide runtime evidence.

Target SAP · 02 Sep 2026

Recorded system evidence

11test includes green
227E2E checks passed
11/11demo operations active

0 failed · 0 skipped · 0 warning in the recorded target run.

Customer landscape

Acceptance steps to complete

Two-user saved-request ownership and visibility
Customer role matrix and CSRF policy
Explicit U/S outbound runtime comparison
Retention job, authorizations and production schedule
The takeaway

Classic ABAP APIs, made easier to publish, understand and operate.

One framework for inbound and outbound REST
OpenAPI generated from the implementation
Live demo backed by recorded verification evidence