EnablingJSONIN: Difference between revisions
From DataFlex Wiki
Jump to navigationJump to search
m Created page with "Here's how to generate there required files for enabling JSON in your webservice. #Know where your project files are. #Grab DBXRay here : ftp://ftp.stureaps.dk/ #Choose the wor..." |
mNo edit summary |
||
Line 43: | Line 43: | ||
<code lang="vdf"> | <code lang="vdf"> | ||
Struct meta | Struct meta | ||
Boolean success | Boolean success | ||
String msg | String msg | ||
End_Struct | End_Struct | ||
Struct tReview | Struct tReview | ||
Integer id | Integer id | ||
Integer productId | Integer productId | ||
String comment | String comment | ||
String author | String author | ||
End_Struct | End_Struct | ||
Struct tProduct | Struct tProduct | ||
Integer id | Integer id | ||
String name | String name | ||
String company | String company | ||
tReview[] reviews | tReview[] reviews | ||
End_Struct | End_Struct | ||
Struct tAddProductRequest | Struct tAddProductRequest | ||
String token | String token | ||
tProduct product | tProduct product | ||
End_Struct | End_Struct | ||
Struct tGetProductResponse | Struct tGetProductResponse | ||
Meta meta | Meta meta | ||
tProduct product | tProduct product | ||
End_Struct | End_Struct | ||
Struct tRequest | Struct tRequest | ||
String token | String token | ||
Integer identifier | Integer identifier | ||
End_Struct | End_Struct | ||
Struct tResponse | Struct tResponse | ||
Meta meta | Meta meta | ||
Integer id | Integer id | ||
End_Struct | End_Struct | ||
</code> | |||
Then you will be able to communicate with ExtJS 4 using the following model definition: | |||
<code lang="javascript"> | |||
Ext.regModel('Acme.Product', { | |||
idProperty: 'id', | |||
successProperty: 'meta.success', | |||
fields: [ | |||
{name:'id', type:'int'}, | |||
{name: "name", type:"string"}, | |||
{name: "company", type:"string"} | |||
], | |||
hasMany: {model:'Acme.Review', name: 'reviews', associationKey: 'reviews'} | |||
}); | |||
Ext.regModel('Acme.Review', { | |||
idProperty: 'id', | |||
fields: [ | |||
'id', | |||
'product_id', | |||
'comment', | |||
'author' | |||
], | |||
belongsTo:'Acme.Product' | |||
}); | |||
</code> | |||
You will be able to send tAddProductRequest as JSON from the client side as the request parameter | You will be able to send tAddProductRequest as JSON from the client side as the request parameter |
Revision as of 13:26, 15 April 2011
Here's how to generate there required files for enabling JSON in your webservice.
- Know where your project files are.
- Grab DBXRay here : ftp://ftp.stureaps.dk/
- Choose the workspace using workspace selector
- select Functions|Generate Struct Packages for project
Now you can write code like the following:
...
Use StructPkg\Struct_tReview.pkg
Use StructPkg\Struct_tProduct.pkg
Use StructPkg\Struct_tAddProductRequest.pkg
Use Product.wo
Use Structures.pkg
Object oProductJSON is a cWebService
...
Procedure CreateProduct String Request
tAddProductRequest stRequest
tJsonNode stJson
If (StringToDoc(oJsonFunctions, &request, &stJson)) Begin
Send JsonToStruct of oStructHandler_tAddProductRequest stJson (&stRequest)
Function_Return (CreateProduct(oProduct, stRequest))
End
Else Begin
Error 666 "String parameter does not contain a valid JSON object"
End
End_Procedure
oProduct is a traditional webservice using SOAP.
Now . Given the following structure definitions:
Struct meta
Boolean success
String msg
End_Struct
Struct tReview
Integer id
Integer productId
String comment
String author
End_Struct
Struct tProduct
Integer id
String name
String company
tReview[] reviews
End_Struct
Struct tAddProductRequest
String token
tProduct product
End_Struct
Struct tGetProductResponse
Meta meta
tProduct product
End_Struct
Struct tRequest
String token
Integer identifier
End_Struct
Struct tResponse
Meta meta
Integer id
End_Struct
Then you will be able to communicate with ExtJS 4 using the following model definition:
Ext.regModel('Acme.Product', {
idProperty: 'id',
successProperty: 'meta.success',
fields: [
{name:'id', type:'int'},
{name: "name", type:"string"},
{name: "company", type:"string"}
],
hasMany: {model:'Acme.Review', name: 'reviews', associationKey: 'reviews'}
});
Ext.regModel('Acme.Review', {
idProperty: 'id',
fields: [
'id',
'product_id',
'comment',
'author'
],
belongsTo:'Acme.Product'
});
You will be able to send tAddProductRequest as JSON from the client side as the request parameter