OData is used to define best practices that are required to build and consume RESTful APIs. It helps you to find out changes, defining functions for reusable procedures and sending batch requests etc.
Some of the important features are −
- OData provides facility for extension to fulfill any custom needs of your RESTful APIs.
- REST stands for Representational State Transfer and it is sometimes spelled as “ReST”.
- It relies on a stateless, client-server, cacheable communication protocol. In virtually all cases, the HTTP protocol is used.
- REST is defined as an architecture style for designing network applications.
- OData helps you focus on your business logic while building RESTful APIs without having to worry about the approaches to define request and response headers, status codes, HTTP methods, URL conventions, media types, payload formats and query options etc.
- OData RESTful APIs are easy to consume.
OData Service Life Cycle
The OData service life cycle includes span of an OData service. Given below are the key steps to be considered in an OData Service Life Cycle.
- Activation of OData service.
- Maintaining OData service.
- Maintaining of models and services, up to the cleanup of the metadata cache.
- RESTful applications use HTTP requests to post data to create or update, read data and delete data. REST uses HTTP for all four CRUD (Create/Read/Update/Delete) operations.
- REST is a lightweight alternative to mechanisms like RPC (Remote Procedure Calls) and Web Services.
REST
REST is defined as an option for web services and Remote Procedure calls. It is used for designing network applications.
REST services like a web services and supports below features −
- Work with firewalls
- Language-independent
- Standards-based
- Not Platform dependent
REST Architecture
Given below are the components of the REST Architecture.
Resources
In REST, both the state and the functionality are presented as resources. Resources are the key element of a RESTful design, as opposed to “methods” or “services” used in RPC and SOAP Web Services.
RPC calls like “getProductName” and “getProductPrice” are not used in REST. You view the product data as a resource and this resource should contain all the required information.
Web of Resources
It means that a single resource should not contain detailed data and it contains links to additional web pages.
Client-Server
In REST client–server model, one component server can be other component client.
No Connection State
Each request should contain details about the connection to each client and should not reply on the previous connections to the same client.
Cachable
The protocol must allow the server to explicitly specify which resources may be cached, and for how long.
Proxy Servers
To improve performance and scalability, Proxy servers can be used. Any standard HTTP proxy can be used.
OData Service using SAP NetWeaver Gateway Service Builder
Use the T-Code: SEGW
A new window will open. Click Create Project.
Now, follow the steps given below −
- Enter the Project name as shown in the image below. It should be unique and should not contain any special characters.
- Enter the description of the project as it is a mandatory field.
- Enter the different attributes such as Project Type,Generation Strategy.
- Select Package or click the local object, if you want to create this locally.
Once you click the local object, Service builder will create a new project with empty folder structure. All these are automatically created with a new project and click the save icon.
Now, to create an Entity type in data model. Expand the Data model → right click → Create → Entity Type.
Enter the Entity type name and to create an entity set automatically, click on related entity set check box option.
Click the option Insert row to add another entity type in data model and add the details as given below. Click Save.
In a similar way, you can create an entity set by right-clicking the data model and enter the details or by using the Insert Row option in Entity Type.
The next step is to define association and relationship between different entities. It can be created in two ways, by using a wizard or by using mask edit view.
- Right click data model → Create → Association or
- Right click Association folder → Create
Double click Association folder → Edit Mode → Insert Row
Enter the details of the given labels −
- Name for the association
- External Association Editor
- Principal entity and cardinality
- Dependent Entity and Cardinality
Click the Association set. Right click data model → Create → Association Set.
To create Function Import in Service Builder, right click Data Model → Create → Function Import.
Enter the name of Function Import and you can select from other options and click the save icon.
To define complex type, go to Data Model → right Click → Complex type.
Enter the details as per the requirement and Save.
This is how you can create Data model, Entity set, type, Association and Complex types.
How to Import Data Model
There are four options available to import Data Model from a file −
- Data model from File
- DDIC structure
- RFC/BOR Interface
- Search Help
To import data model, follow the steps given below −
Run T-code: SEGW
Right-click Project Name → Import → Select the import method
Enter the path and import Entity types, Entity sets, associations and complex types.
Mapping to Data Source
Go to Data Model → Service Implementation → select Entity Set for Mapping
Enter the local or remote system data source, type and Name and save.
This will enable mapping node under query operation. You can do mapping for single objects or can also use the option of Propose mapping option.
Service Maintenance and Registration
Go to Data Model. Double-click Service Maintenance.
Select the system you want to register and click the Register option at the top.
Select the project → Local Object and then save by clicking the tick mark.
Check the Service Registration status.
To maintain the service, click the Maintain button. Another window will open.
Click Call browser and select to use this service as URL. Click OK.
A browser will open; enter the user name and password to see if service is exposed as OData service.