[jira] [Commented] (OFBIZ-4274) Implement a REST Servlet

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Commented] (OFBIZ-4274) Implement a REST Servlet

Nicolas Malin (Jira)

    [ https://issues.apache.org/jira/browse/OFBIZ-4274?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16486611#comment-16486611 ]

Scott Gray commented on OFBIZ-4274:
-----------------------------------

Hi Nicolas,

The mapping would result in a JSON structure similar to this:
{code:javascript}
{
  "shipmentId": "10000",
    "destinationPostalAddress": {
        "contactMechId": "9015"
    },
    "destinationTelecomNumber": {
        "contactMechId": "9025"
    },
    "fromParty": {
        "partyId": "Company"
    },
    "shipmentItems": [
        {
            "product": {
                "productId": "GZ-2644"
            },
            "shipmentItemSeqId": "00001",
            "quantity": 2.000000,
            "orderShipments": [
                {
                    "orderItemSeqId": "00001",
                    "shipGroupSeqId": "00001",
                    "quantity": 2.000000,
                    "itemIssuances": [
                        {
                            "issuedDateTime": "2015-05-16T10:49:17+0000",
                            "quantity": 1.000000,
                            "inventoryItemId": "9001"
                        }
                    ],
                    "orderId": "DEMO10090"
                }
            ]
        }
    ],
    "originPostalAddress": {
        "contactMechId": "9200"
    },
    "primaryShipGroupSeqId": "00001",
    "status": {
        "statusId": "SHIPMENT_PACKED"
    },
    "shipmentPackages": [
        {
            "packageContents": [
                {
                    "shipmentItemSeqId": "00001",
                    "quantity": 1.000000
                }
            ],
            "shipmentPackageSeqId": "00001",
            "dateCreated": "2015-05-16T10:49:17+0000"
        }
    ],
    "toParty": {
        "partyId": "DemoCustomer"
    },
    "shipmentRouteSegments": [
        {
            "carrierPartyId": "UPS",
            "destTelecomNumberId": "9025",
            "carrierServiceStatusId": "SHRSCS_NOT_STARTED",
            "originFacilityId": "WebStoreWarehouse",
            "originTelecomNumberId": "9201",
            "shipmentPackages": [
                {
                    "shipmentPackageSeqId": "00001"
                }
            ],
            "shipmentRouteSegmentId": "00001",
            "originContactMechId": "9200",
            "destContactMechId": "9015",
            "shipmentMethodTypeId": "NEXT_DAY"
        }
    ],
    "originFacility": {
        "facilityId": "WebStoreWarehouse"
    },
    "primaryOrderId": "DEMO10090",
    "type": {
        "shipmentTypeId": "SALES_SHIPMENT"
    },
    "originTelecomNumber": {
        "contactMechId": "9201"
    }
}
{code}

The API might look something like this (I'm making it up on the spot):
{code:groovy}
shipment = ResourceAPI.use(delegator).resource("shipment").get("10000")
shipment.shipmentItems.each { shipmentItem ->
  shipmentItem.orderShipments.each { orderShipment ->
      Debug.log("${shipment.shipmentId}/${shipmentItem.shipmentItemSeqId} shipped ${orderShipment.quantity} units of ${shipmentItem.product.productId} from order ${orderShipment.orderId}/${orderShipment.orderItemSeqId}")
  }
}
// perform an update on the resource
shipment.status.statusId = "SHIPMENT_SHIPPED"
ResourceAPI.use(delegator).resource("shipment").post(shipment)
{code}

So instead of working on individual table records to read and write, you'd be working on a view of the entire shipment document.

> Implement a REST Servlet
> ------------------------
>
>                 Key: OFBIZ-4274
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-4274
>             Project: OFBiz
>          Issue Type: New Feature
>          Components: framework
>    Affects Versions: Trunk
>            Reporter: Adrian Crum
>            Priority: Major
>              Labels: REST
>         Attachments: RestExampleSchema.xsd, RestXmlRepresentation.xml, rest-conf.xml, swagger-pos-openapi.png
>
>
> Implement a REST servlet that will map REST requests to OFBiz services. Details are in the comments.
> [here is the discussion which took place on the dev ML|http://markmail.org/message/ai6q2fbksowaayn4]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)