From nobody Sat Jan 16 14:12:50 2021
Return-Path: <Darrel.Miller@microsoft.com>
X-Original-To: httpapi@ietfa.amsl.com
Delivered-To: httpapi@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1])
 by ietfa.amsl.com (Postfix) with ESMTP id B7A003A124F
 for <httpapi@ietfa.amsl.com>; Sat, 16 Jan 2021 14:12:48 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.35
X-Spam-Level: 
X-Spam-Status: No, score=-2.35 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.25, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001,
 URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key)
 header.d=microsoft.com
Received: from mail.ietf.org ([4.31.198.44])
 by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024)
 with ESMTP id sLLdT_uZTwTJ for <httpapi@ietfa.amsl.com>;
 Sat, 16 Jan 2021 14:12:46 -0800 (PST)
Received: from NAM06-BL2-obe.outbound.protection.outlook.com
 (mail-eopbgr650120.outbound.protection.outlook.com [40.107.65.120])
 (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
 (No client certificate requested)
 by ietfa.amsl.com (Postfix) with ESMTPS id 99CC63A11DB
 for <httpapi@ietf.org>; Sat, 16 Jan 2021 14:12:46 -0800 (PST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=mKk2xQcq53SXCqmbhTm772UpmOC1sD8Y+4FdnYT9PGsbRadxPHNoK1/EtU1quNC9GFBBW6bL/GcTMKc3jyU78CfDtKNAHfefnOf84nXSktnxRPJ7y9IwkCPPF5E+JVrkgVzy0NSouNcqYXbJG4MHu2x28UCP59az8PN3X09FQcGQvn82CPzjY8v3KxiHM/T0cKkLg/O+oxOnhWBMs6hFsP89TYakVABEtM2xl468ZuN41xpbMcbbwd0xi7DDsRayqVlkuiI5qswwskH5Q6l3RxeWtq38/V0cqVJTsT7HMLFgVVk67Y4eCBQoXsTOEdzbQNseEv+OmycGtNCKbotOEA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xdQi0UXPFnx5gKDGTFvrnFbTETdUrO8Khh+QLRa6jbc=;
 b=lN/aZmizPp2XBr7plw8unkyAmHFxzQsJWKmV4UNJ6euCVAAiLbg4e3tIcu4t0sR6Xq2E5Im1XyjROxDBbWdLmvjgD/FamAlBuEpZcM5DvDtoYp3wL5uOUq51gtBvxrcfN+fiHIRoeAPNeMpmAdZfjueK38giJ1IJ0h+1Qs/nNIjEY70dSRFl8DYUx/IHLc4byZ1+BNwI/h22bkoKTYmA2AQsSCyGkIlAfdfC7M4yToMHBnxGBFciATo4c7Orp8NKWePovFxCepVDDd1QN2OZZ2T51bhqqEL7bqmuywaqvhXzvv6J5lRkvhpE9Nm5MFUlDH/fVJ4HyhpECTnenFfIyA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=microsoft.com; dmarc=pass action=none
 header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=xdQi0UXPFnx5gKDGTFvrnFbTETdUrO8Khh+QLRa6jbc=;
 b=WfVgPcvvNKFwVkSY4ah8kR78XvsR+eDqGBIb2/Uk8JV5FHTmjvTsVm2Z5bw8jmGUCCKLmba1cDHYppdRbJuDx8hYlL31m7hAeBY1xX3kLwvIsHHXXCzyCcsZkYkUBIJ62AXY8luWpZbdYL6rE6A2r+UuB+YG3whrKMzfhRfBIGg=
Received: from (2603:10b6:5:1bc::23) by
 DM6PR00MB0765.namprd00.prod.outlook.com (2603:10b6:5:1bd::23) with Microsoft
 SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.20.3809.0; Sat, 16 Jan 2021 22:12:35 +0000
Received: from DM6PR00MB0845.namprd00.prod.outlook.com
 ([fe80::6450:8a43:1d66:8d3d]) by DM6PR00MB0845.namprd00.prod.outlook.com
 ([fe80::6450:8a43:1d66:8d3d%5]) with mapi id 15.20.3812.000; Sat, 16 Jan 2021
 22:12:35 +0000
From: Darrel Miller <Darrel.Miller@microsoft.com>
To: "christoph.kappestein@gmail.com" <christoph.kappestein@gmail.com>,
 "httpapi@ietf.org" <httpapi@ietf.org>
Thread-Topic: [httpapi] Discussion about JSON payloads and code generation
Thread-Index: AQHW7AmIPyJ32zvjfE6Ci8mHOwNnYKoqynhf
Date: Sat, 16 Jan 2021 22:12:35 +0000
Message-ID: <DM6PR00MB0845824BE38945071F9774A5F0A69@DM6PR00MB0845.namprd00.prod.outlook.com>
References: <CALcRZn6-ojAAdJcMWFHef70Xp32O2iFatuw-YjGLKtr8VnbmYQ@mail.gmail.com>
In-Reply-To: <CALcRZn6-ojAAdJcMWFHef70Xp32O2iFatuw-YjGLKtr8VnbmYQ@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True;
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47;
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2021-01-16T22:12:36.555Z;
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General;
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0;
 MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard; 
authentication-results: gmail.com; dkim=none (message not signed)
 header.d=none;gmail.com; dmarc=none action=none header.from=microsoft.com;
x-originating-ip: [74.15.147.35]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: d4522eb9-de6a-46c0-3a0b-08d8ba6bd443
x-ms-traffictypediagnostic: DM6PR00MB0765:
x-microsoft-antispam-prvs: <DM6PR00MB07652CE04005122A02A871E7F0A69@DM6PR00MB0765.namprd00.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: Y2lF12NuLAe6ri3k45FM/dKrakiM7qhtHJ3W+p570YKsng8DVv8JOdWoTt8zc2mOXSwaKUnbYjWK8w30vAYLq//vE9WZ/KCKx8bmRAgxoEaO4hP9jAKqzdATyF1nwOcghJtukIQF2ionRRve9uOvwyZNB98imx/A3RrpkKBFnQynDPcGQvHGx3f5jEWHYhN5Gztl7zrtZ/OMtAJSrHlgPDh5pIMgZhdjOea++C+lbMesHd84EiNArc6pVg5/eeB1fXWURDdnbFF0mjsiwzJhC9rBw+oV11mxVV0H4ovedr2lqhiLEN2Png1ihv3pWv+JWygf5DMve64ElxER9dB5THR1hwuv16cUH7vVWXqQiFy1SSNn/5ahvygbECJ8WfCZzIvLhSFJ+F+GyfUSeVq/LGVLR+Tg+TL4aaXKJl9yMaS9MySw+KdFoJVj6qQlLA/3IKFc763YLQozk+JNBP8sV2WZS5GhbqnjdY6/6IOxZdAqNUS0bcN0Z6wv6H96mXs+BECmKaFANsV69TYPoh5eaYIA/W7tOte9zj6irCT28h47MlAw4yisokNndu3kKhRqxc7N2yO3CIo0ZTDw7up8hXZ7qPca5oZfxHOqEERcCwgzFXjKBH+0onJWumTwje8WAq1Oycy/ax57RSjR9rKm/w==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; 
 IPV:NLI; SFV:NSPM;
 H:DM6PR00MB0845.namprd00.prod.outlook.com; PTR:; CAT:NONE; 
 SFS:(4636009)(366004)(396003)(346002)(376002)(136003)(39860400002)(186003)(6506007)(26005)(7696005)(19627405001)(966005)(316002)(66946007)(110136005)(55016002)(8676002)(478600001)(10290500003)(9686003)(82950400001)(76116006)(64756008)(5660300002)(82960400001)(86362001)(52536014)(33656002)(166002)(71200400001)(8936002)(66556008)(66446008)(8990500004)(2906002)(66476007)(443494004);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata: =?iso-8859-1?Q?yBW6DKj/9liplJ9+J80vSuA7WmF4N6E5csmWRc919tsRzEyIWqKAY4jbAR?=
 =?iso-8859-1?Q?i2+V0oyBXq9qPjGslpsnBjeWS4lsBFvLpYjXE8DKgAGX2DoaZgBeNDHd9D?=
 =?iso-8859-1?Q?fO+qzbrwHQEcdOdY0DGZAEwhjN9hzcPbjV+EUumf74h+4xZ2xa2VoAKuZ3?=
 =?iso-8859-1?Q?OsXonFMnrd3L9pqy77zNO1+4LpXPDMJ++OIaSHyuxfUzbgZIJngMG5CxZp?=
 =?iso-8859-1?Q?jxJI0jR/cX/k8jwhi5XdxEM9a4HtEj2aZZuq9QfE3V1Xk259ZuOXhRb8TA?=
 =?iso-8859-1?Q?4zPPdhA67GVyP51UbQ22qNK14Nj/lqHiL6D7i35nq19P1tgVmdWvHEgXsn?=
 =?iso-8859-1?Q?Zkg0KKjBpGqZ3lUEQ08TDuy79xZ69P2N6E96FqYF4q9wf+tZV/AQWdN+G9?=
 =?iso-8859-1?Q?SbjUQcCbGFL5BsrSiMXchaYxuVH5+fFFAH6N8ksMt/5WHlOagY2MVURSXI?=
 =?iso-8859-1?Q?PMW9VTajLqlk/5XF9+nZqa8LemzfEcNeTGmqkk8fVGWYhpUK9QDFeGXp1b?=
 =?iso-8859-1?Q?Rn/6AsDFRlXvUnbbrrNbIjc9CuO+sUB70Cmnzb1K9al+vKOfm7KJqFU3sX?=
 =?iso-8859-1?Q?eIXTtGK0AR2PfquH8kiUNSyTUIO4OWh+J5qlw/Sjb9vOfjuttoXRgNj01X?=
 =?iso-8859-1?Q?oXyOhBMmFjWFNUdrmblzK+emPOKWrS/F7EIkC7CPDh5eCgRGcHAqOlcVX2?=
 =?iso-8859-1?Q?kDQMarY85HcMZ60dLaKe+2Tvgbnw9wPQqj0TDbC/SIucD7nhgFV8hGg+5b?=
 =?iso-8859-1?Q?YJy5wBLBUMwxxiyKRHqP8yWLuemy+R5CAN/oZRT80AtnPNePPZqm5dhjjq?=
 =?iso-8859-1?Q?+HTP8/O8bnlKWY4oqSeZjD3pTbNv90KHNqfx42rI+UlqFhC9v3GeJ9f/hb?=
 =?iso-8859-1?Q?kbmdsnUcz86ScrN9l5T8mfMWJL3lsYFEuVLrzVMAco+KLPqJFAejirINrL?=
 =?iso-8859-1?Q?6f/YC5Mi+JdXPboQZJXcr2/l7oYIK3Siqtb+ZXfWNxofd/h74RcmAKXG57?=
 =?iso-8859-1?Q?6X6U4ET4W2ljk/Uociqgm3DQfeBEvTDuFPb4qfkXekEa6DvTFQG0t6H/QO?=
 =?iso-8859-1?Q?+JuLg0tcfuyKgHH8DNsUuAunnN8ljtQMHdYBKT9Ae5td?=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative;
 boundary="_000_DM6PR00MB0845824BE38945071F9774A5F0A69DM6PR00MB0845namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR00MB0845.namprd00.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d4522eb9-de6a-46c0-3a0b-08d8ba6bd443
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Jan 2021 22:12:35.7949 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: wl8b4ofqdoX86Bf8J0wFUNADBnFgsZsNNNaVFyMKmGyMwuMVY+xRYr5LqDYM6KFi2updD2VizZj1trsYSe4eMg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR00MB0765
Archived-At: <https://mailarchive.ietf.org/arch/msg/httpapi/vfJCCRds_NOtMRm2X3IBj7otYC8>
Subject: Re: [httpapi] Discussion about JSON payloads and code generation
X-BeenThere: httpapi@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Building Blocks for HTTP APIs <httpapi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/httpapi>,
 <mailto:httpapi-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/httpapi/>
List-Post: <mailto:httpapi@ietf.org>
List-Help: <mailto:httpapi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/httpapi>,
 <mailto:httpapi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 16 Jan 2021 22:12:49 -0000

--_000_DM6PR00MB0845824BE38945071F9774A5F0A69DM6PR00MB0845namp_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Hi Christoph,

From: httpapi <httpapi-bounces@ietf.org> on behalf of Christoph Kappestein =
<christoph.kappestein@gmail.com>

I would like to gauge whether there is some interest in discussing ways to =
describe JSON payloads with a focus on code generation on this WG. Also it =
would be interesting to gather feedback from other developers who have expe=
riences in this space.

As an editor of the OpenAPI spec, that relies heavily on JSON Schema, consi=
der my perspective to be heavily biased here. But I do agree wholeheartedly=
 that JSON Schema has challenges when it comes to describing types for code=
 generation.  However, I would be reluctant to go down a path of defining a=
 new specification for describing types.

The recent Postman developer survey https://www.postman.com/state-of-api/ f=
ound that in their 13,000 respondents, 75% of them claimed to be users of J=
SON Schema.  Convincing developers to move to a different format is going t=
o require a compelling alternative.

What would be awesome to see is if a community could form around creating a=
 new JSON Schema vocabulary that targets type description.  JSON Schema its=
elf is now defined by a set of vocabularies, one of which is the validation=
 vocabulary.  I know the JSON Schema core team have been looking for someon=
e to spearhead this effort.   https://github.com/json-schema-org/json-schem=
a-vocabularies

By taking this approach, the existing JSON Schema specifications and artifa=
cts can be leveraged, and the new type definition keywords could be used al=
ongside the validation keywords.

Darrel



--_000_DM6PR00MB0845824BE38945071F9774A5F0A69DM6PR00MB0845namp_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Diso-8859-=
1">
<style type=3D"text/css" style=3D"display:none;"> P {margin-top:0;margin-bo=
ttom:0;} </style>
</head>
<body dir=3D"ltr">
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 10pt; color: rgb(0, 0, 0);">
Hi Christoph,</div>
<div style=3D"font-family: Calibri, Arial, Helvetica, sans-serif; font-size=
: 10pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id=3D"appendonsend"></div>
<blockquote itemscope=3D"" itemtype=3D"https://schemas.microsoft.com/Quoted=
Text" style=3D"border-left: 3px solid rgb(200, 200, 200); border-top-color:=
 rgb(200, 200, 200); border-right-color: rgb(200, 200, 200); border-bottom-=
color: rgb(200, 200, 200); padding-left: 1ex; margin-left: 0.8ex; color: rg=
b(102, 102, 102);">
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" co=
lor=3D"#000000" style=3D"font-size:11pt"><b>From:</b> httpapi &lt;httpapi-b=
ounces@ietf.org&gt; on behalf of Christoph Kappestein &lt;christoph.kappest=
ein@gmail.com&gt;<br>
</font></div>
<div id=3D"divRplyFwdMsg" dir=3D"ltr"><font face=3D"Calibri, sans-serif" co=
lor=3D"#000000" style=3D"font-size:11pt"><br>
</font></div>
<div>
<div dir=3D"ltr">
<div>I would like to gauge whether there is some interest in discussing way=
s to describe JSON payloads with a focus on code generation on this WG. Als=
o it would be interesting to gather feedback from other developers who have=
 experiences in this space.<br>
</div>
</div>
</div>
</blockquote>
<div>
<div dir=3D"ltr">
<div><br>
</div>
<div>As an editor of the OpenAPI spec, that relies heavily on JSON Schema, =
consider my perspective to be heavily biased here. But I do agree wholehear=
tedly that JSON Schema has challenges when it comes to describing types for=
 code generation.&nbsp; However, I would
 be reluctant to go down a path of defining a new specification for describ=
ing types.&nbsp;&nbsp;</div>
<div><br>
</div>
<div>The recent Postman developer survey&nbsp;<a href=3D"https://www.postma=
n.com/state-of-api/">https://www.postman.com/state-of-api/</a>&nbsp;found t=
hat in their 13,000 respondents, 75% of them claimed to be users of JSON Sc=
hema.&nbsp; Convincing developers to move to a different
 format is going to require a compelling alternative.</div>
<div><br>
</div>
<div>What would be awesome to see is if a community could form around creat=
ing a new JSON Schema vocabulary that targets type description.&nbsp; JSON =
Schema itself is now defined by a set of vocabularies, one of which is the =
validation vocabulary.&nbsp; I know the JSON
 Schema core team have been looking for someone to spearhead this effort.&n=
bsp; &nbsp;<a href=3D"https://github.com/json-schema-org/json-schema-vocabu=
laries">https://github.com/json-schema-org/json-schema-vocabularies</a></di=
v>
<div><br>
</div>
<div>By taking this approach, the existing JSON Schema specifications and a=
rtifacts can be leveraged, and the new type definition keywords could be us=
ed alongside the validation keywords.</div>
<div><br>
</div>
<div>Darrel</div>
<div><br>
</div>
<div><br>
</div>
</div>
</div>
</body>
</html>

--_000_DM6PR00MB0845824BE38945071F9774A5F0A69DM6PR00MB0845namp_--

