OK great, we’re talking the same language now :)

For compatibility reasons between spec versions 1.x and 2.0 the term nickname 
maps 1:1 to operationId

Overriding the nickname is easy, but it’s done in the java code for TypeScript, 
not the templates.  You can easily pass an extension like x-operationId if you 
wanted to use that, and tell the code generator to select that operation id if 
it exists.  It’d require some java, though, or perhaps a really nice request 
for help in the swagger-codegen issues

> On Sep 27, 2016, at 9:37 AM, jmls <jul...@dotr.com> wrote:
> 
> for example, the node-typescript generator has this template snippet :
> 
> {{#operation}}
>     /**
>      * {{summary}}
>      * {{notes}}
>      {{#allParams}}* @param {{paramName}} {{description}}
>      {{/allParams}}*/
>     public {{nickname}} 
> ({{#allParams}}{{paramName}}{{^required}}?{{/required}}: 
> {{{dataType}}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) : Promise<{ response: 
> http.{{#supportsES6}}IncomingMessage{{/supportsES6}}{{^supportsES6}}ClientResponse{{/supportsES6}};
>  {{#returnType}}body: {{{returnType}}}; {{/returnType}}{{^returnType}}body?: 
> any; {{/returnType}} }> {
> 
> 
> where the {{nickname}} is the method - this is seemingly generated from the 
> operationid, but I'm kinda hoping that there's a way of changing / defining 
> the "nickname"
> 
> 
> On Tuesday, 27 September 2016 17:33:12 UTC+1, jmls wrote:
> Yes, I was confused.  Easily done :)
> 
> Still - is there a way of passing / using a name instead of an operationId to 
> the client sdk generator ? Or is that a feature that the client sdk will have 
> to cater for ?
> 
> If there isn't a way, if I were to add a "x-method-name" property to the 
> swagger spec file for that operation and modify the client sdk to use the 
> value of x-method-name if it existed, would that be the most appropriate way ?
> 
> thanks
> 
> On Tuesday, 27 September 2016 17:00:04 UTC+1, tony tam wrote:
> I think we’re confusing concepts here.  Operations have operationIds.  If 
> you’re talking about models, I’m assuming you’re talking about definitions or 
> payloads to/from the operation.
> 
> An operation is the combination of a HTTP method and a path, such as:
> 
> GET: /pets/3
> 
> A model is a payload defined in JSON schema.  An instance of a model may look 
> like this:
> 
> {
>   “id”: 3
>   “name”: “dog”
> }
> 
> A model definition is a subset of JSON schema, it looks like this:
> 
> definitions: {
>   “Pet”: {
>     “properties”: {
>       “id”: {
>         “type”: “integer”,
>         “format”: “int32”
>       }
>     }
>   }
> 
> So there is no operationId on a model, only an operation.  And in the 
> specification, there are no operations on models—but code generators may 
> implicitly add them, depending on the language.
> 
>> On Sep 27, 2016, at 8:44 AM, jmls <jul...@dotr.com <>> wrote:
>> 
>> This brings me back to the original point: if I have 2 models, Customer and 
>> Order, and they each have a "find" method, I would like the sdk to be
>> 
>> Customer.find() and Order.find()
>> 
>> At the moment, because the operationId is Customer_find and Order_find, the 
>> actual method names are
>> 
>> Customer.CustomerFind() and Order.OrderFind() which looks ugly
>> 
>> if I used guid1 and guid2 as the operationids, then the models are 
>> Customer.guid1() and Order.guid2() which is also ugly ;)
>> 
>> Is there an "alias" or "methodname" property in the spec that would allow me 
>> to have a unique operationId, but a method name of "find" (in this
>> particular case) ?
>> 
>> Julian
>> 
>> On Tuesday, 27 September 2016 15:32:04 UTC+1, tony tam wrote:
>> Hi, indeed you can use numbers or a guid. Just keep in mind that tooling 
>> (swagger-ui or codegen) may need to coerce that string to something 
>> appropriate (i.e. you can’t typically have hyphens in a method name for 
>> client SDKs).
>> 
>> Also… since that field is optional you can choose to not supply it at 
>> all—then the consumer has to invent something on its’ own.
>> 
>>> On Sep 27, 2016, at 1:22 AM, jmls <jul...@ <>dotr.com <http://dotr.com/>> 
>>> wrote:
>>> 
>>> thanks for the reply, Tony
>>> 
>>> can I just clarify something : you said " you should have unique numbers 
>>> for all operationId values" , so does that mean a guid / uuid would be 
>>> acceptable ? If so, how do you *name* the endpoint ?
>>> 
>>> This is perhaps where my confusion is coming from. I completely understand 
>>> the requirement for operationId to be unique, but is there a name / 
>>> nickname / alias property I can use to name the method ? I've only seen an 
>>> operationid containing a "meaningful" (ie getPet) value rather than a 
>>> number / id / guid etc
>>> 
>>> Thanks
>>> 
>>> On Tuesday, 27 September 2016 03:08:56 UTC+1, tony tam wrote:
>>> Hi, you should have unique numbers for all operationId values.  If the 
>>> tools work, it doesn’t make it right—it just means they’re being lenient.  
>>> They could throw errors but the authors have decided to gracefully handle 
>>> the error in the spec.
>>> 
>>>> On Sep 24, 2016, at 11:05 AM, jmls <jul...@ <>dotr.com <http://dotr.com/>> 
>>>> wrote:
>>>> 
>>>> Hey all
>>>> 
>>>> Been looking through the v2 specification 
>>>> (http://swagger.io/specification/ <http://swagger.io/specification/>) , 
>>>> and came across this statement:
>>>> 
>>>> operationId: Unique string used to identify the operation. The id MUST be 
>>>> unique among all operations described in the API. Tools and libraries MAY 
>>>> use the operationId to uniquely identify an operation, therefore, it is 
>>>> recommended to follow common programming naming conventions.
>>>> 
>>>> I am slightly confused about this : 
>>>> 
>>>> if I have 2 models (Customer and Order) does this mean that a "find" 
>>>> method must be unique across both, or just within the model ? (ie is the 
>>>> API the model or all models ? )
>>>> 
>>>> So I tried an experiment: I have 2 operationId's of "find" : 1 on the 
>>>> customer and one on the order
>>>> 
>>>> I then ran swagger codegen and it didn't complain about uniqueness. 
>>>> 
>>>> I then added *another* "find" to the Customer model, and this time codegen 
>>>> did complain about non-unique operationid's - and renamed it to find_1
>>>> 
>>>> So - is swagger-codegen wrong, or are operationId's unique within a model 
>>>> and not the whole API ?
>>>> 
>>>> Thanks
>>>> 
>>>> -- 
>>>> You received this message because you are subscribed to the Google Groups 
>>>> "Swagger" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>>> email to swagger-swaggersocket+unsubscr...@googlegroups.com <>.
>>>> For more options, visit https://groups.google.com/d/optout 
>>>> <https://groups.google.com/d/optout>.
>>> 
>>> 
>>> -- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "Swagger" group.
>>> To unsubscribe from this group and stop receiving emails from it, send an 
>>> email to swagger-swaggersocket+unsubscr...@googlegroups.com <>.
>>> For more options, visit https://groups.google.com/d/optout 
>>> <https://groups.google.com/d/optout>.
>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Swagger" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to swagger-swaggersocket+unsubscr...@googlegroups.com <>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Swagger" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to swagger-swaggersocket+unsubscr...@googlegroups.com 
> <mailto:swagger-swaggersocket+unsubscr...@googlegroups.com>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"Swagger" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to swagger-swaggersocket+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to