ODATA is the means to create one kind of RESTFUL API.
API is a code that allows two S/W programs to communicate with each other.
RESTFUL – representational state transfer is a style of developing web services.
In contrast to SOAP which is action based (get an employee, get a product, get sales order), REST is resource based (employee, product, sales order).
1. Everything is a resource and it is identified by URI (unique resource identifier) which is a form or URL.
URL: hostname: port no of hub/service name/resource name
2. When a resource is requested a representation or copy is sent in XML or JSON format
1. Uniform Interface – Architecture can evolve independently. Separation of display and business logic. Irrespective of display logic, business logic uses following HTTP methods.
a. Create -> POST
b. Read ->GET
2. Stateless – After server sends a response to a request, it does not hold a session or user-related information.
3. Client Server-Uniform interface separates client & server, as a result, frontend can be replaced easily, flexibility to customers to choose UI of their own choice
4. Cacheable – Cache memory can hold server response
5. Layered system – Client should not assume it interacts with the server directly, there can be middle layers
SAP NetWeaver Gateway
Simple way to connect devices, environments & platforms to SAP s/w.
SAP Gateway Service Builder:
TCode : SEGW
1. Gateway core -GW_CORE
2. Business enablement provisioning -IW_BEP
3. Foundation- IW_FND
SAP_GWFND -> Gateway foundation
1. Hub architecture (Gateway hub where service is built in a separate system than business suite where implementation is done)
2. Embedded architecture (both service and implementation in the business suite)
1. The consumer sends HTTP request
2. Registered service in the gateway is called (/IWEND/MAINT_SERVICE)
3. ODATA service called through RFC from the backend
Entity data model
1. Entity type: required structure/ bunch of named properties with associated data types
2. Entity: Instance of entity type
4. Entity Sets: Set of Entity records
1. Create a structure with required fields.
2. Create an ODATA project in SEGW
A project has
a. Data model: Entity type, Association, Entity Sets
b. Service implementation
c. Runtime Artifacts
d. Service maintenance
3. In data model import the created structure, choose key fields
4. Generate runtime artifacts.
It creates the following:
a. Model provider class (_MPC, _MPC_EXT)i. MPC is the runtime object for design time modeling
ii. MPC extension is used when design-time environment needs to be changed at runtime. Redefine the method.
b. Data provider class (_DPC, _DPC_EXT)
i. <Entity_Set>_create_entity ->HTTP POST
ii. <Entity_Set>_delete_entity ->HTTP DELETE
iii. <Entity_Set>_update_entity ->HTTP PUT
iv. <Entity_Set>_get_entity ->HTTP GET
c. Service registration (_MDL, _SRV)
5. Register service
a. Using tcode /IWFND/MAINT_SERVICE, add the service
b. It creates a SICF node which is needed for all web based apps
6. Gateway client
a. Using tcode /IWFND/GW_CLIENT test a service
b. URI path:
1. Inside Out
Create service out of existing business component (function module, classes)
2. Outside In
Look at service/ app first, then think of business component to fulfill a need., if business component is not optimized then don’t use it. Go for the custom component. UI enforces business logic here