Quantcast
Channel: Jive Syndication Feed
Viewing all articles
Browse latest Browse all 10881

SMP 3.0 OData CRUD Operations in iOS Native

$
0
0

Hi Everyone,

 

Recently i gone through OData Read, Create, Update and Delete operations in SMP 3.0 Native ODataSDK.

 

here is a sample code for a OData service


http://sapes1.sapdevcenter.com:8080/sap/opu/odata/IWFND/RMTSAMPLEFLIGHT/TravelagencyCollection

 

GET Request Format

 

[RequestBuildersetRequestType:HTTPRequestType];

  

// Enable XCSRF handling for OData requests

[RequestBuilderenableXCSRF:YES];

  

// Initialize the Requesting class with the endpoint URL

id<Requesting> getRequest = [RequestBuilderrequestWithURL:[[NSURLalloc] initWithString: appEndPoint]];

  

// Add username and password for the end point

[getRequest setUsername:username];

[getRequest setPassword:password];

   

/// Set our request headers.

[getRequest setRequestMethod:@"GET"];

[getRequest addRequestHeader:@"X-Requested-With"value:@"XmlHttpRequest"];

[getRequest addRequestHeader:@"Content-Type"value:@"application/xml; charset=UTF-8"];

[getRequest addRequestHeader:@"Accept"value:@"application/xml,application/atom+xml"];

  

// This class is the delegate callback for any notifications (success and failure)

[getRequest setDelegate:self];

[getRequest setDidFinishSelector:@selector(handleReqSuccess:)];

[getRequest setDidFailSelector:@selector(handleReqFailed:)];

  

// Each request can be tagged with a number.

getRequest.requestTag = tag; // Useful for a change request.

  

// Start our request.

[getRequest startAsynchronous];


POST Request Format

 

[RequestBuildersetRequestType:HTTPRequestType];

 

[RequestBuilderenableXCSRF:YES];

 

id<Requesting> postRequest = [RequestBuilderrequestWithURL:[NSURLURLWithString:[NSStringstringWithFormat:@"%@/%@",appEndPoint,collectionName]]];

 

[postRequest setRequestMethod:@"POST"];

  

[postRequest addRequestHeader:@"Content-Type"value:@"application/json; charset=UTF-8"];

 

[postRequest addRequestHeader:@"Accept"value:@"*/*"];

 

// Here cSRFToken is retrieved from the GET Response.

[postRequest addRequestHeader:@"x-csrf-token"value:cSRFToken];

 

NSMutableData* postData;

// GetEntry is an ODataObject which has the response for GET done on single entry from a collection

 

ODataEntryconst *postBody = [[ODataEntryalloc]initWithEntitySchema:[[[self.serviceDocumentgetSchema] getCollectionByName:self.entityName] getEntitySchema]];

  

ODataPropertyValueObject* filterValue = [postBody getPropertyValueByPath:@"agencynum"];  ///agencynum is the primary key or the unique value

   

          filterValue.rawValue=@"00000127";

    

ODataPropertyValueObject* filterValue1 = [postBody getPropertyValueByPath:@"agencyname"];

    

filterValue1.rawValue=@"BestAgency";

  

//The following code can be used to build a JSON post body:

 

ODataEntryBody *entryBody = buildODataEntryRequestBody(postBody, ENTRY_OPERATION_CREATE, self.serviceDocument, NO, BUILD_STYLE_JSON);  

      

postData = [[entryBody.bodydataUsingEncoding:NSUTF8StringEncoding]mutableCopy];

 

[postRequest addRequestHeader:@"Content-Length"value:[NSStringstringWithFormat:@"%i",[postData length]]];

 

[postRequest setPostBody:postData];

 

[postRequest setDelegate:self];

  

// Each request can be tagged with a number.

          getRequest.requestTag = tag; // Useful for a change request.

 

// Start our request.

[postRequest startAsynchronous];

 

PUT Request Format


[RequestBuildersetRequestType:HTTPRequestType];

  

[RequestBuilderenableXCSRF:YES];

  

id<Requesting> putRequest = [RequestBuilderrequestWithURL:[NSURLURLWithString:[NSStringstringWithFormat:@"%@/%@(%@)",appEndPoint,collectionName,agencynum]]];

  

[putRequest setRequestMethod:@"PUT"];

 

[putRequest addRequestHeader:@"Content-Type"value:@"application/json; charset=UTF-8"];

  

[putRequest addRequestHeader:@"Accept"value:@"*/*"];

  

[putRequest addRequestHeader:@"x-csrf-token"value:cSRFToken];

  

NSMutableData *postData;

 

ODataEntryconst *postBody = [[ODataEntryalloc]initWithEntitySchema:[[[self.serviceDocumentgetSchema] getCollectionByName:self.entityName] getEntitySchema]];

 

ODataPropertyValueObject* filterValue = [postBody getPropertyValueByPath:@"agencyname"];

  

filterValue.rawValue=@"NewAgencyName";

  

//The following code can be used to build a JSON post body:

ODataEntryBody *entryBody = buildODataEntryRequestBody(postBody, ENTRY_OPERATION_CREATE, self.serviceDocument, NO, BUILD_STYLE_JSON);

      

postData = [[entryBody.bodydataUsingEncoding:NSUTF8StringEncoding]mutableCopy];

  

[putRequest addRequestHeader:@"Content-Length"value:[NSStringstringWithFormat:@"%i",[postData length]]];

  

[putRequest setPostBody:postData];

  

[putRequest setDelegate:self];

  

putRequest.requestTag = tag;

  

// Start our request.

  [putRequest startAsynchronous];


DELETE Request Format


[RequestBuildersetRequestType:HTTPRequestType];

  

[RequestBuilderenableXCSRF:YES];

  

id<Requesting> deleteRequest = [RequestBuilderrequestWithURL:[NSURLURLWithString:[NSStringstringWithFormat@"%@/%@(%@)",appEndPoint,collectionName,agencynum]]];

  

[deleteRequest setRequestMethod:@"Delete"];

  

[deleteRequest addRequestHeader:@"Content-Type"value:@"application/json; charset=UTF-8"];

  

[deleteRequest addRequestHeader:@"Accept"value:@"*/*"];

  

[deleteRequest addRequestHeader:@"x-csrf-token"value:self.cSRFToken];

  

[deleteRequest setDelegate:self];

  

deleteRequest.requestTag = tag;

  

// Start our request.

[deleteRequest startAsynchronous];


 

Regards

Siva Chandu


Viewing all articles
Browse latest Browse all 10881

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>