Q:

creating RAML file for dynamic key/values for get/post

I was using a Mule application to get data from another system which is invoked by an HTTP endpoint, used java with jersey api to get the rest component.
Sample input data is given below, here keys and values are not fixed, it may vary based on user request. Array size will increase may be 2 to n entries. It is working fine with Mule and Java rest based component.
Input JSON data:
[
    {
        "Company": "BEG1",
        "Account": "10011",
        "Deptid": "111",
        "Location": "SM1",
        "Transaction Date": "2014-07-15",
        "Description": "Invoice1",
        "Debit": 0,
        "Credit": 13.46,
        "Invoice Nbr": "16824321"
    },
    {
        "Company": "BEG92",
        "Account": "10092",
        "Deptid": "222",
        "Location": "SL2",
        "Transaction Date": "2014-07-19",
        "Description": "Invoice End2",
        "Debit": 13.46,
        "Credit": 0,
        "Invoice Nbr": "168243292"
    }
]

Planning to migrate to APIkit with RAML: how can I make a RAML template for above case? Since keys are dynamic, this doesn't seem straightforward.
2) With same approach for GET, I will get the data for my get request, I am not sure what is the key and its corresponding values, only I was doing is get the data, parse it and send it to the user. How do I create RAML template on this situation.Will mule APIkit with RAML will work here?
My existing code:
@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public List<GLExport> postOperation(@Payload String content) throws ParseException {    
    JSONParser jsonParser = new JSONParser();
    Object jsonObjectInstance =null;
    jsonObjectInstance = jsonParser.parse(new StringReader(content));
    ...
    return glExportList;

<http:inbound-endpoint exchange-pattern="request-response" host="${hostname}" port="${glport}" path="QBJournalExport/QBGLRest" doc:name="HTTP"/>
<jersey:resources doc:name="REST"> 
    <component class="com.qb.rest.GLExportService"/>
</jersey:resources> 

A:

It seems your question is more about JSON Schema than RAML. In essence, you are asking how to support unknown fields in a JSON Schema.
The answer is by adding:
"additionalProperties": true

to your JSON Schema object definition.
I strongly suggest that if there is set of fields are known, you declare them explicitly in your schema: users of your API will thank you for that.
Also, if some of these fields are guaranteed to be present, mark them as required as well.
APIkit should have no trouble dealing with additional properties.

