Hmx Accounts

<back to all web services

GetProduct

Requires Authentication
The following routes are available for this service:
GET/api/products/{id}Get Product by Key
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ProductDto:
    id: Optional[str] = None
    name: Optional[str] = None
    description: Optional[str] = None
    long_description: Optional[str] = None
    details: Optional[str] = None
    price: Optional[Decimal] = None
    product_type: Optional[str] = None
    year: Optional[int] = None
    application_id: Optional[str] = None
    required_product_id: Optional[str] = None
    scope: Optional[str] = None
    feature: Optional[str] = None
    is_visible: Optional[bool] = None
    icon_url: Optional[str] = None
    volume_discounts: Optional[Dict[int, Decimal]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class GetProduct:
    id: Optional[str] = None

Python GetProduct DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

GET /api/products/{id} HTTP/1.1 
Host: accounts.dev.healthmonix.com 
Accept: text/jsv
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	id: String,
	name: String,
	description: String,
	longDescription: String,
	details: String,
	price: 0,
	productType: String,
	year: 0,
	applicationId: String,
	requiredProductId: String,
	scope: String,
	feature: String,
	isVisible: False,
	iconUrl: String,
	volumeDiscounts: 
	{
		0: 0
	}
}