Logo
NeoArc Studio

API Serialisation Profiles

Configure how model entities are serialised for each API type (REST, GraphQL, gRPC, AsyncAPI, Webhooks, MCP) with naming conventions, date-time formats, enum transformations, and per-field overrides. One model property, multiple serialised representations, all controlled from profiles without modifying the model.

The gap between an architectural model and an API contract is wider than it appears. A model entity might define a property called created_date with a datetime type, but the public REST API needs it as createdDate in ISO 8601 format, the GraphQL schema needs it as createdDate with a custom DateTime scalar, and the internal gRPC service expects created_date as a google.protobuf.Timestamp. Enum values in the model might be stored as integers, but the API should expose them as human-readable strings. Different consumers, different protocols, and different conventions all need different representations of the same underlying data.

API serialisation profiles bridge this gap by defining how model entities are transformed for each API output, without modifying the model itself. NeoArc Studio supports all major API types, and each can have its own serialisation profile.

REST APIs
OpenAPI-based endpoints with JSON request/response bodies. Typically use camelCase naming and ISO 8601 dates.
GraphQL APIs
Schema-defined types with queries and mutations. Custom scalars handle date formats. PascalCase for types, camelCase for fields.
gRPC APIs
Protocol Buffer definitions with strongly-typed messages. Use snake_case naming by convention and well-known types like Timestamp.
AsyncAPI Events
Event-driven message payloads across a wide range of protocols. Naming and date formats vary by protocol convention.
Webhook Callbacks
HTTP callback payloads with JSON bodies. Naming and serialisation must match the consumer's expectations.
MCP Servers
AI tool parameter schemas for Model Context Protocol. JSON Schema representations with appropriate type mappings.

Profile Configuration

Each serialisation profile defines a set of conventions that control how model properties are transformed when generating API schemas.

SettingOptionsExample
Naming ConventioncamelCase / snake_case / PascalCase / kebab-caseuserName vs user_name
DateTime FormatISO 8601 / Unix timestamp / Custom2026-02-23T00:00:00Z vs 1772006400
Enum Stylestring / integer / PascalCase string"active" vs 0 vs "Active"
Null Handlinginclude / omit / default valuenull vs field omitted

One Property, Six Serialisations

The real power of serialisation profiles is visible when a single model property is projected across multiple API types. Each API target applies its profile rules independently.

API TypeProperty NameTypeFormat
Model (source)created_datedatetimeAbstract type, no format
REST APIcreatedDatestringISO 8601 (2026-02-23T00:00:00Z)
GraphQLcreatedDateDateTime (scalar)ISO 8601 via custom scalar
gRPCcreated_dategoogle.protobuf.TimestampProtobuf well-known type
AsyncAPIcreatedDatestringISO 8601 in event payload
Webhookscreated_datestringUnix timestamp (consumer preference)
MCPcreatedDatestringISO 8601 in tool parameter schema

How Profiles Work

Per-Field Overrides

While profiles define conventions at the global level, individual properties sometimes need exceptions. The per-field override system allows fine-grained control without abandoning the profile entirely.