+1 for  not having version numbers in the path.

Regards
Nandika

On Tue, May 10, 2016 at 3:51 PM, Hasitha Aravinda <[email protected]> wrote:

> We had an offline discussion with Azeez and Sameera on this issue.
> Following points were discussed.
>
>    - Microservices will not required to maintain a version number in its
>    path. Version number of an API is a metadata information, which need to
>    maintain separately. Best option is to use swagger annotations for this.
>    - Maintaining several version of same API in a single product is
>    cumbersome and will be difficult maintain. Hence every time we will expose
>    only one versions of the API in a product.
>    - Best way to expose different versions of same API is to have
>    different versions of the product
>    ​​
>    ​
>    and use API gateway
>    ​to
>     rout
>    ​e
>    to the correct
>    ​product ​
>    instances
>    ​ which expose correct API implementation​
>    .
>    ​​
>    - ​W
>    hen there is an API addition or change
>    ​,
>    ​v
>    ersion number has to increment.
>
>
> ​Please add If I missed anything.
>
> ​Thanks,
> Hasitha.
>
>
>
>
> On Thu, May 5, 2016 at 2:17 PM, Afkham Azeez <[email protected]> wrote:
>
>> In what cases would you require to maintain multiple versions of a
>> microservice in a product? Or is this related to different versions of the
>> same product? If it is the second case, it is the responsibility of the
>> gateway to route to the correct instances and there is no need to maintain
>> version information on the product runtime side.
>>
>> On Thu, May 5, 2016 at 2:12 PM, Sameera Jayasoma <[email protected]>
>> wrote:
>>
>>>
>>>
>>> On Thu, May 5, 2016 at 12:42 PM, Hasitha Aravinda <[email protected]>
>>> wrote:
>>>
>>>> ​Some more questions
>>>>
>>>> On Thu, May 5, 2016 at 12:30 PM, Sameera Jayasoma <[email protected]>
>>>> wrote:
>>>>
>>>>> I believe its wrong to use the product version to version your micro
>>>>> services.
>>>>>
>>>>> You need to have different version for your microservices. e.g.
>>>>> starting from 1.0.0. If you don't change any of your microservices you
>>>>> shouldn't be changing these versions.
>>>>>
>>>>
>>>> ​According to Rest API guideline, it should be product version. ​isn't
>>>> it ?
>>>>
>>>
>>> We cannot change API versions for each and every product release.  You
>>> should change the API version only if you have introduced a change.  We are
>>> following the same approach to version export packages from bundles.
>>>
>>>
>>>>
>>>> Let's say we are using version from 1.0.0.
>>>> ​If we are going to do a modification​
>>>>
>>>> ​to a microservice ( ​let's say foo 1.0) and new version is foo 1.1 Do
>>>> we need to maintain both versions to provide backward compatibility ? If so
>>>> we have to maintain two microservices: Foo 1.0 and Foo 1.1, because version
>>>> is a part of the path in microservice.
>>>>
>>>
>>> I am not sure whether need to maintain the previous versions of micro
>>> services. Thats something we need to discuss. Also it adds complexity.
>>>
>>> If you have introduced any additions to your micro services, then you
>>> can bump up the minor version number. If you've introduced incompatible
>>> changes, then you have bump up the major version number.
>>>
>>>
>>>
>>>>
>>>> eg:
>>>> @Path("
>>>> /bps/bpmn/v
>>>> ​1​
>>>> .0/
>>>> ​foo
>>>> ")
>>>> ​ ,
>>>> @Path("
>>>> /bps/bpmn/v
>>>> ​1​
>>>> .
>>>> ​1​
>>>> /
>>>> ​foo
>>>> ")
>>>> ​
>>>> Thanks,
>>>> Hasitha.
>>>>
>>>>
>>>>> On Thu, May 5, 2016 at 11:02 AM, Himasha Guruge <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Hi All,
>>>>>>
>>>>>> We have refactored our REST APIs by implementing Microservice
>>>>>> interface. According to the new REST guideline , we need to maintain the
>>>>>> URL format like below. For example,
>>>>>>
>>>>>> http://localhost:7777/bps/bpmn/v4.0/repository/deployments
>>>>>>
>>>>>> How are we going to maintain the product version updates with
>>>>>> microservices? If we are to maintain the product version with a  
>>>>>> parameter
>>>>>> been set from a config file, how can we achieve this?
>>>>>>
>>>>>>
>>>>>> Thanks,
>>>>>> Himasha Guruge
>>>>>> *Software Engineer*
>>>>>> WS*O2* *Inc.*
>>>>>> Mobile: +94 777459299
>>>>>> [email protected]
>>>>>>
>>>>>> _______________________________________________
>>>>>> Architecture mailing list
>>>>>> [email protected]
>>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Sameera Jayasoma,
>>>>> Software Architect,
>>>>>
>>>>> WSO2, Inc. (http://wso2.com)
>>>>> email: [email protected]
>>>>> blog: http://blog.sameera.org
>>>>> twitter: https://twitter.com/sameerajayasoma
>>>>> flickr: http://www.flickr.com/photos/sameera-jayasoma/collections
>>>>> Mobile: 0094776364456
>>>>>
>>>>> Lean . Enterprise . Middleware
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Architecture mailing list
>>>>> [email protected]
>>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> --
>>>> Hasitha Aravinda,
>>>> Senior Software Engineer,
>>>> WSO2 Inc.
>>>> Email: [email protected]
>>>> Mobile : +94 718 210 200
>>>>
>>>> _______________________________________________
>>>> Architecture mailing list
>>>> [email protected]
>>>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>>>
>>>>
>>>
>>>
>>> --
>>> Sameera Jayasoma,
>>> Software Architect,
>>>
>>> WSO2, Inc. (http://wso2.com)
>>> email: [email protected]
>>> blog: http://blog.sameera.org
>>> twitter: https://twitter.com/sameerajayasoma
>>> flickr: http://www.flickr.com/photos/sameera-jayasoma/collections
>>> Mobile: 0094776364456
>>>
>>> Lean . Enterprise . Middleware
>>>
>>>
>>
>>
>> --
>> *Afkham Azeez*
>> Director of Architecture; WSO2, Inc.; http://wso2.com
>> Member; Apache Software Foundation; http://www.apache.org/
>> * <http://www.apache.org/>*
>> *email: **[email protected]* <[email protected]>
>> * cell: +94 77 3320919 <%2B94%2077%203320919>blog: *
>> *http://blog.afkham.org* <http://blog.afkham.org>
>> *twitter: **http://twitter.com/afkham_azeez*
>> <http://twitter.com/afkham_azeez>
>> *linked-in: **http://lk.linkedin.com/in/afkhamazeez
>> <http://lk.linkedin.com/in/afkhamazeez>*
>>
>> *Lean . Enterprise . Middleware*
>>
>> _______________________________________________
>> Architecture mailing list
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>>
>
>
> --
> --
> Hasitha Aravinda,
> Senior Software Engineer,
> WSO2 Inc.
> Email: [email protected]
> Mobile : +94 718 210 200
>



-- 
Nandika Jayawardana
WSO2 Inc ; http://wso2.com
lean.enterprise.middleware
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to