Search code examples
apirestoauth-2.0raml

How to use RAML to describe an API using OAuth2


I'm want to use RAML to describe an API using OAuth2

Does anyone have a solution or example I could use to compare with my own RAML for my api?


Solution

  • From https://github.com/raml-org/raml-spec/blob/master/08_security.md#declaration:

    securitySchemes:
        - oauth_2_0:
            description: |
                Dropbox supports OAuth 2.0 for authenticating all API requests.
            type: OAuth 2.0
            describedBy:
                headers:
                    Authorization:
                        description: |
                           Used to send a valid OAuth 2 access token. Do not use 
                           with the "access_token" query string parameter.
                        type: string
                queryParameters:
                    access_token:
                        description: |
                           Used to send a valid OAuth 2 access token. Do not use together with 
                           the "Authorization" header
                        type: string
                responses:
                    401:
                        description: |
                            Bad or expired token. This can happen if the user or Dropbox
                            revoked or expired an access token. To fix, you should re-
                            authenticate the user.
                    403:
                        description: |
                            Bad OAuth request (wrong consumer key, bad nonce, expired
                            timestamp...). Unfortunately, re-authenticating the user won't help here.
            settings:
              authorizationUri: https://www.dropbox.com/1/oauth2/authorize
              accessTokenUri: https://api.dropbox.com/1/oauth2/token
              authorizationGrants: [ code, token ]