+1, looks good On 29 June 2017 at 12:27, Malintha Amarasinghe <[email protected]> wrote:
> > > On Thu, Jun 29, 2017 at 12:20 PM, Harsha Kumara <[email protected]> wrote: > >> >> >> On Thu, Jun 29, 2017 at 11:43 AM, Malintha Amarasinghe < >> [email protected]> wrote: >> >>> Hi all, >>> >>> Bhathiya and I had a discussion about this and came up with the below >>> approach regarding POST /provide-keys. >>> >>> 1.Creates a new resource in /keys collection providing the key type. >>> (Similar to semi-manual client registration). >>> >>> POST /applications/{applicationId}/keys >>> >>> *Request:* >>> >>> POST /applications/876f8fd8-269a-41db-b1cf-e4efe8a8426d/keys >>> >>> { >>> "consumerKey": "xxxxxxxxxxxxxxxxxxxx", >>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>> "keyType": "PRODUCTION" >>> } >>> >>> *Response* >>> >>> HTTP/1.1 201 CREATED >>> Location: https://localhost:9292/api/am/store/v1/applications/876f8fd8 >>> -269a-41db-b1cf-e4efe8a8426d/keys/PRODUCTION >>> >>> { >>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>> "supportedGrantTypes": [ >>> "client-credentials", "password" >>> ], >>> "callbackUrl": "http://localhost/callback", >>> "keyType": "PRODUCTION" >>> } >>> >>> Seems we are thinking keyType as a resource. We will need to add a >> validation for keyType at implementation layer. +1 for the approach. >> > Yeah we will need a validation since the only allowed key types are > PRODUCTION and SANDBOX. > >> >>> 2. Get all keys >>> >>> GET /applications/{applicationId}/keys >>> >>> >>> *Request:* >>> >>> GET /applications/876f8fd8-269a-41db-b1cf-e4efe8a8426d/keys >>> >>> >>> *Response:* >>> >>> HTTP/1.1 200 OK >>> { >>> "count": 2, >>> "items": [ >>> >>> { >>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>> "supportedGrantTypes": [ >>> "client-credentials", "password" >>> ], >>> "callbackUrl": "http://localhost/callback", >>> "keyType": "PRODUCTION" >>> }, >>> >>> { >>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>> "supportedGrantTypes": [ >>> "client-credentials", "password" >>> ], >>> "callbackUrl": "http://localhost/callback", >>> "keyType": "SANDBOX" >>> } >>> >>> ] >>> } >>> >>> >>> 3. Get a single key detail >>> >>> GET /applications/{applicationId}/keys/{keyType} >>> >>> *Request* >>> >>> GET /applications/876f8fd8-269a-41db-b1cf-e4efe8a8426d/keys/PRODUCTION >>> >>> >>> *Response* >>> >>> HTTP/1.1 200 OK >>> >>> { >>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>> "supportedGrantTypes": [ >>> "client-credentials", "password" >>> ], >>> "callbackUrl": "http://localhost/callback", >>> "keyType": "PRODUCTION" >>> } >>> >>> 4. Update a key >>> >>> PUT /applications/{applicationId}/keys/{keyType} >>> >>> *We will only allow updating supported grant types and callback URLs for >>> individual keys.* >>> >>> *Request* >>> >>> PUT /applications/876f8fd8-269a-41db-b1cf-e4efe8a8426d/keys/PRODUCTION >>> >>> >>> { >>> "supportedGrantTypes": [ >>> "client-credentials" >>> ], >>> "callbackUrl": "http://localhost/callback-updated", >>> } >>> >>> *Response:* >>> >>> HTTP/1.1 200 OK >>> >>> { >>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>> "supportedGrantTypes": [ >>> "client-credentials" >>> ], >>> "callbackUrl": "http://localhost/callback-updated", >>> "keyType": "PRODUCTION" >>> } >>> >>> >>> >>> Thanks >>> Malintha >>> >>> >>> >>> On Wed, Jun 28, 2017 at 1:37 PM, Bhathiya Jayasekara <[email protected]> >>> wrote: >>> >>>> Hi all, >>>> >>>> As discussed in [1], I split generate keys operation into 2, and added >>>> "provide-keys" operation for semi-manual client registration. Here is the >>>> final list with sample requests and responses. >>>> >>>> >>>> POST /applications/{applicationId}/generate-keys >>>> >>>> { >>>> "keyType": "PRODUCTION", >>>> "grantTypesToBeSupported": [ >>>> "client-credentials", "password" >>>> ], >>>> "callbackUrl": "http://localhost/callback"} >>>> >>>> >>>> Response >>>> >>>> { >>>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>>> "supportedGrantTypes": [ >>>> "client-credentials", "password" >>>> ], >>>> "callbackUrl": "http://localhost/callback", >>>> "keyType": "PRODUCTION"} >>>> >>>> >>>> >>>> POST /applications/{applicationId}/provide-keys >>>> >>>> { >>>> "consumerKey": "xxxxxxxxxxxxxxxxxxxx", >>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>>> "keyType": "PRODUCTION"} >>>> >>>> >>>> Response >>>> >>>> { >>>> "consumerKey": "xxxxxxxxxxxxxxxxxx", >>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyy", >>>> "supportedGrantTypes": [ >>>> "client-credentials", "password" >>>> ], >>>> "callbackUrl": "http://localhost/callback", >>>> "keyType": "PRODUCTION"} >>>> >>>> >>>> >>>> POST /applications/{applicationId}/generate-tokens >>>> >>>> { >>>> "consumerKey": "xxxxxxxxxxxxxxxxxxxxx", >>>> "consumerSecret": "yyyyyyyyyyyyyyyyyyyyyy", >>>> "validityPeriod": 3600, >>>> "scopes": "read write delete", >>>> "revokeToken": "zzzzzzzzzzzzzzzzzzzzz"} >>>> >>>> >>>> Response >>>> >>>> { >>>> "accessToken": "aaaaaaaaaaaaaaaaaaaaaaaaa", >>>> "tokenScopes": "read write", >>>> "validityTime": 3600} >>>> >>>> >>>> >>>> [1] [APIM][C5] Splitting "Generate Keys" operation in Store REST API >>>> >>>> Thanks, >>>> -- >>>> *Bhathiya Jayasekara* >>>> *Associate Technical Lead,* >>>> *WSO2 inc., http://wso2.com <http://wso2.com>* >>>> >>>> *Phone: +94715478185 <+94%2071%20547%208185>* >>>> *LinkedIn: http://www.linkedin.com/in/bhathiyaj >>>> <http://www.linkedin.com/in/bhathiyaj>* >>>> *Twitter: https://twitter.com/bhathiyax <https://twitter.com/bhathiyax>* >>>> *Blog: http://movingaheadblog.blogspot.com >>>> <http://movingaheadblog.blogspot.com/>* >>>> >>> >>> >>> >>> -- >>> Malintha Amarasinghe >>> Software Engineer >>> *WSO2, Inc. - lean | enterprise | middleware* >>> http://wso2.com/ >>> >>> Mobile : +94 712383306 <+94%2071%20238%203306> >>> >> >> >> >> -- >> Harsha Kumara >> Software Engineer, WSO2 Inc. >> Mobile: +94775505618 <+94%2077%20550%205618> >> Blog:harshcreationz.blogspot.com >> > > > > -- > Malintha Amarasinghe > Software Engineer > *WSO2, Inc. - lean | enterprise | middleware* > http://wso2.com/ > > Mobile : +94 712383306 <+94%2071%20238%203306> > -- Regards, Uvindra Mobile: 777733962
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
