Skip to main content

API GATEWAYS STRUCTURE

API Gateways

API Gateway Architecture internal HDD Diagram

API Gateways Internal Structure Details:

%3CmxGraphModel%3E%3Croot%3E%3CmxCell%20id%3D%220%22%2F%3E%3CmxCell%20id%3D%221%22%20parent%3D%220%22%2F%3E%3CmxCell%20id%3D%222%22%20value%3D%22API%20Gateways%26amp%3Bnbsp%3B%26lt%3Bbr%26gt%3BDashboard%26lt%3Bbr%26gt%3B%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2280%22%20y%3D%2280%22%20width%3D%22120%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%223%22%20value%3D%22API%20Gateways%20Rules%26amp%3Bnbsp%3B%26lt%3Bbr%26gt%3BApplication%20Services%26lt%3Bbr%26gt%3B%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22280%22%20y%3D%2280%22%20width%3D%22120%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%224%22%20value%3D%22Buckect(Json%20file)%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22480%22%20y%3D%22140%22%20width%3D%22120%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%225%22%20value%3D%22API%20Gateways%26amp%3Bnbsp%3B%26lt%3Bbr%26gt%3BProcess%20Url%26lt%3Bbr%26gt%3B%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22280%22%20y%3D%22200%22%20width%3D%22120%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%226%22%20value%3D%22Client%26amp%3Bnbsp%3B%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%2280%22%20y%3D%22200%22%20width%3D%22120%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%227%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3B%22%20edge%3D%221%22%20source%3D%222%22%20target%3D%223%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22210%22%20y%3D%22140%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22260%22%20y%3D%2290%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%228%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3Bhtml%3D1%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3B%22%20edge%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22200%22%20y%3D%22229%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22280%22%20y%3D%22229%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%229%22%20value%3D%22App%20Server%22%20style%3D%22rounded%3D1%3BwhiteSpace%3Dwrap%3Bhtml%3D1%3B%22%20vertex%3D%221%22%20parent%3D%221%22%3E%3CmxGeometry%20x%3D%22500%22%20y%3D%22240%22%20width%3D%22120%22%20height%3D%2260%22%20as%3D%22geometry%22%2F%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2210%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3BstartArrow%3Dclassic%3Bhtml%3D1%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3B%22%20edge%3D%221%22%20source%3D%225%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22425%22%20y%3D%22240%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22480%22%20y%3D%22200%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2211%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3BstartArrow%3Dclassic%3Bhtml%3D1%3BexitX%3D1%3BexitY%3D0.5%3BexitDx%3D0%3BexitDy%3D0%3BentryX%3D-0.008%3BentryY%3D0.083%3BentryDx%3D0%3BentryDy%3D0%3BentryPerimeter%3D0%3B%22%20edge%3D%221%22%20source%3D%223%22%20target%3D%224%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22410%22%20y%3D%22240%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22490%22%20y%3D%22210%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3CmxCell%20id%3D%2212%22%20value%3D%22%22%20style%3D%22endArrow%3Dclassic%3BstartArrow%3Dclassic%3Bhtml%3D1%3BentryX%3D0%3BentryY%3D0.5%3BentryDx%3D0%3BentryDy%3D0%3B%22%20edge%3D%221%22%20target%3D%229%22%20parent%3D%221%22%3E%3CmxGeometry%20width%3D%2250%22%20height%3D%2250%22%20relative%3D%221%22%20as%3D%22geometry%22%3E%3CmxPoint%20x%3D%22400%22%20y%3D%22230%22%20as%3D%22sourcePoint%22%2F%3E%3CmxPoint%20x%3D%22130%22%20y%3D%22320%22%20as%3D%22targetPoint%22%2F%3E%3C%2FmxGeometry%3E%3C%2FmxCell%3E%3C%2Froot%3E%3C%2FmxGraphModel%3EResources/ (/)
          Actions/
Resources Actions/
  *New Child Resources/(Use this page to create a new child resource for your resource)
Configure as proxy resource/
Enable API Gateway CORS/
Resource Name*/
Resource Path*/
*Method/(ANY/ GET/ POST/ PUT/ DELETE/ HEAD/ PATCH/)
Method request/
Settings/
Authorization/
Request Validator/
API Key Required/
       URL Query String Parameters/  
      HTTP Request Headers/
     Request Body/
         SDK Settings/(Operation name: Generated based on method and path)

(Provide information about the target backend that this method will call and whether the incoming request data should be modified.)
Integration type/
(Lambda Function, HTTP, Mock, Application Service , VPC Link )
Application Service/
HTTP method/
Path override (optional)/
Use Default Timeout/

Mapping Templates/
(Request body passthrough)

*Method Response/
(Provide information about this method's response types, their headers and content types.)
Http Status/
200/
   Response Headers for Http Status
Name:
Access-Control-Allow-Headers   
Access-Control-Allow-Methods   
Access-Control-Allow-Origin
 
  Response Body for Http Status
Content type:
application/json

Enable CORS/
Gateway Responses for Resources API (DEFAULT Status)
Access-Control-Allow-Methods (Method)
Access-Control-Allow-Headers(Extra Headers Content Type)
Access-Control-Allow-Origin(Set Origin)

*Deploy API/
(Choose a stage where your API will be deployed. For example, a test version of your API could be deployed to a stage named beta.)
Deployment stage/
Deployment description/



 Stages/

( Create a stage where your APIs will be deployed. For example, a test version of your API could be deployed to a stage named beta.)
V1/
    Settings/
Cache Settings/
Enable API Cache/
Default Method Throttling/
Enable throttling/
         Rate/( requests per second)=10000
  Burst/( requests)=5000
Web Application Firewall (WAF)/
Web ACL/( Select the Web ACL to be applied to this stage.)

Client Certificate/
Certificate/( Select the client certificate that API Gateway will use to call your integration endpoints in this stage.)

      Authorizers/(Authorizers enable you to control access to your APIs using Cognito User Pools or a Application function.)

  Gateway Responses/
Access Denied/( Configuration - Access Denied)
(The gateway response for authorization failure; for example, when access is denied by a custom or application authorizer. If the response type is unspecified, this response defaults to the DEFAULT_4XX type.)

NOTE -->*GRR*
Response status code/(Status code to be returned to the client. 500)
Response headers/( Response headers to be returned to the client. The header values can take any incoming request parameter or a custom static value wrapped with single quotes (e.g. 'my-static-value').)
Response templates/( Response templates to transform the body before returning to the client.)

*GRR*/

API Configuration Error/
(The gateway response for invalid API configuration, including invalid endpoint address submitted, Base64 decoding failed on binary data when binary support is enacted, or integration response mapping cannot match any template and no default template is configured. If the response type is unspecified, this response defaults to the DEFAULT_5XX type)

*GRR*/

Authorizer Configuration Error/
(The gateway response for failing to connect to a custom or Amazon Cognito authorizer. If the response type is unspecified, this response defaults to the DEFAULT_5XX type.)

*GRR*/

Authorizer Failure/
(The gateway response when a custom or Amazon Cognito authorizer failed to authenticate the caller. If the response type is unspecified, this response defaults to the DEFAULT_5XX type.)

*GRR*/

Bad Request Body/
(The gateway response when the request body cannot be validated according to an enabled request validator. If the response type is unspecified, this response defaults to the DEFAULT_4XX type.)

*GRR*/

Bad Request Parameters/
(The gateway response when the request parameter cannot be validated according to an enabled request validator. If the response type is unspecified, this response defaults to the DEFAULT_4XX type.)

*GRR*/

Default 4XX/
(The default gateway response for an unspecified response type with the status code of 4XX. Changing the status code of this 
fallback gateway response changes the status codes of all other 4XX responses to the new value. Resetting this status code 
to null reverts the status codes of all other 4XX responses to their original values.)

*GRR*/

Default 5XX/

(The default gateway response for an unspecified response type with a status code of 5XX. Changing the status code of this
 fallback gateway response changes the status codes of all other 5XX responses to the new value. Resetting this status code
 to null reverts the status codes of all other 5XX responses to their original values.)

*GRR*/

Expired Token/
(The gateway response for an AWS authentication token expired error. If the response type is unspecified, this response defaults to the DEFAULT_4XX type.)

*GRR*/

Integration Failure/
(The gateway response for an integration failed error. If the response type is unspecified, this response defaults to the DEFAULT_5XX type.)

*GRR*/

Integration Timeout/
(The gateway response for an integration timed out error. If the response type is unspecified, this response defaults to the DEFAULT_5XX type.)

*GRR*/

Invalid API Key/
(The gateway response for an invalid API key submitted for a method requiring an API key. If the response type is unspecified, this response defaults to the DEFAULT_4XX type.)

*GRR*/

Invalid Signature/
(The gateway response for an invalid AWS signature error. If the response type is unspecified, this response defaults to the DEFAULT_4XX type.)

*GRR*/

Missing Authentication Token/

(The gateway response for a missing authentication token error, including the cases when the client attempts to invoke an unsupported API method or resource. If the response type is unspecified, this response defaults to the DEFAULT_4XX type.)

*GRR*/

Quota Exceeded/

(The gateway response for the usage plan quota exceeded error. If the response type is unspecified, this response defaults to the DEFAULT_4XX type.)

*GRR*/

Request Too Large/
(The gateway response for the request too large error. If the response type is unspecified, this response defaults to the DEFAULT_4XX type.)

*GRR*/

Resource Not Found/
(The gateway response when API Gateway cannot find the specified resource after an API request passes authentication and authorization, except for API key authentication and authorization. If the response type is unspecified, this response defaults to the DEFAULT_4XX type.)

*GRR*/

Throttled/
(The gateway response when usage plan-, method-, stage-, or account-level throttling limits exceeded. If the response type is unspecified, this response defaults to the DEFAULT_4XX type.)

*GRR*/

Unauthorized/
(The gateway response when the custom or Amazon Cognito authorizer failed to authenticate the caller.)

*GRR*/

Unsupported Media Type/
(The gateway response when a payload is of an unsupported media type, if strict passthrough behavior is enabled. If the response type is unspecified, this response defaults to the DEFAULT_4XX type.)

*GRR*/

WAF Filtered/
(The gateway response when a request is blocked by AWS WAF. If the response type is unspecified, this response defaults to the DEFAULT_4XX type.)



Models/

(Make changes to your model in the form below. Models are declared using JSON schema.)


Resource Policy/

(Configure access control to this private API using a Resource Policy. Access can be controlled by IAM condition elements, including conditions on cloud account, Source VPC, VPC Endpoints (Private API), and/or IP range. If the Principal in the policy is set to *, other authorization types can be used alongside the resource policy. If the Principal is set to cloud server, then authorization will fail for all resources not secured with cloud auth, including unsecured resources.)
Account Whitelist/
IP Range Blacklist/
Source VPC Whitelist/

Documentation/

(Add documentation to help developers understand how to interact with your API. Documentation parts can be shared across multiple resources and methods by specifying a wildcard value (*) for the method or status code, eg. documentation for a 200 response can be used in multiple locations. You can also import documentation by supplying a Swagger definition file, and publish documentation to a stage. For more information, reference the documentation. https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-documenting-api.html?icmpid=docs_apigateway_console
)

Dashboard/

Stage/
API Calls/
Latency/
Integration Latency/
4xx Error/
5xx Error/

Settings/(Configure settings for your API deployments)

API Key Source/
(Choose the source of your API Keys from incoming requests. Configure deployments to receive API keys from the x-api-key header or from an Application Authorizer)
Content-Encoding/
(Allow compression of response bodies based on client's Accept-Encoding header. Compression is triggered when response body size is greater than or equal to your configured threshold. The maximum body size threshold is 10 MB (10,485,760 Bytes). The following compression types are supported: gzip, deflate, and identity.)
Binary Media Types/
(You can configure binary support for your API by specifying which media types should be treated as binary types. API Gateway will look at the Content-Type and Accept HTTP headers to decide how to handle the body.)


(You can add path parameters using brackets. For example, the resource path {username} represents a path parameter called 'username'. Configuring /{proxy+} as a proxy resource catches all requests to its sub-resources. For example, it works for a GET request to /foo. To handle requests to /, add a new ANY method on the / resource.)

Comments

  1. Its one of the best blog i have came through. API development firm provides professional custom API development and integration services. Hire our experienced API developers and programmers for API integration service.
    api development company

    ReplyDelete
  2. The blog which you have posted is more impressive... thanks for sharing with us...
    Uses For Selenium
    What is Selenium Used For

    ReplyDelete

Post a Comment

Popular posts from this blog

Java Loops II print each element of our series as a single line of space-separated values.

We use the integers  ,  , and   to create the following series: You are given   queries in the form of  ,  , and  . For each query, print the series corresponding to the given  ,  , and   values as a single line of   space-separated integers. Input Format The first line contains an integer,  , denoting the number of queries.  Each line   of the   subsequent lines contains three space-separated integers describing the respective  ,  , and   values for that query. Constraints Output Format For each query, print the corresponding series on a new line. Each series must be printed in order as a single line of   space-separated integers. Sample Input 2 0 2 10 5 3 5 Sample Output 2 6 14 30 62 126 254 510 1022 2046 8 14 26 50 98 Explanation We have two queries: We use  ,  , and   to produce some series  : ... and so on. Once we hit  , we print the first ten terms as a single line of space-separate

Java Currency Formatter Solution

Given a  double-precision  number,  , denoting an amount of money, use the  NumberFormat  class'  getCurrencyInstance  method to convert   into the US, Indian, Chinese, and French currency formats. Then print the formatted values as follows: US: formattedPayment India: formattedPayment China: formattedPayment France: formattedPayment where   is   formatted according to the appropriate  Locale 's currency. Note:  India does not have a built-in Locale, so you must  construct one  where the language is  en  (i.e., English). Input Format A single double-precision number denoting  . Constraints Output Format On the first line, print  US: u  where   is   formatted for US currency.  On the second line, print  India: i  where   is   formatted for Indian currency.  On the third line, print  China: c  where   is   formatted for Chinese currency.  On the fourth line, print  France: f , where   is   formatted for French currency. Sample

Java Substring Comparisons

We define the following terms: Lexicographical Order , also known as  alphabetic  or  dictionary  order, orders characters as follows:  For example,  ball < cat ,  dog < dorm ,  Happy < happy ,  Zoo < ball . A  substring  of a string is a contiguous block of characters in the string. For example, the substrings of  abc  are  a ,  b ,  c ,  ab ,  bc , and  abc . Given a string,  , and an integer,  , complete the function so that it finds the lexicographically  smallest  and  largest substrings of length  . Input Format The first line contains a string denoting  . The second line contains an integer denoting  . Constraints  consists of English alphabetic letters only (i.e.,  [a-zA-Z] ). Output Format Return the respective lexicographically smallest and largest substrings as a single newline-separated string. Sample Input 0 welcometojava 3 Sample Output 0 ava wel Explanation 0 S