Version 29.2 by Danniar Firdausy on 2024/08/07 10:53

Hide last authors
Erik Bakker 21.1 1 {{container}}{{container layoutStyle="columns"}}(((
eMagiz 1.1 2
Erik Bakker 29.1 3 In our [[crash course>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.WebHome||target="blank"]] on the API Gateway pattern, we have learned about setting up the API Gateway. However, we still need to delve into how to update your existing API Gateway solution. In this microlearning, we will focus on updating the design phase of your API gateway (and the subsequent steps) and the create phase of your API gateway (and subsequent steps). This is to learn the impact of updates and how we can achieve this.
eMagiz 1.1 4
Erik Bakker 21.1 5 Should you have any questions, please contact [[academy@emagiz.com>>mailto:academy@emagiz.com]].
eMagiz 1.1 6
7 == 1. Prerequisites ==
8
9 * Basic knowledge of the eMagiz platform
10
11 == 2. Key concepts ==
12
13 This microlearning centers around updating your API Gateway.
14
Erik Bakker 29.1 15 By updating, we mean changing existing software to reflect new insights or ideas that have come up during development and testing.
eMagiz 1.1 16
17 * Updating can happen from Design
18 * Updating can happen from Create
19 * Both situations have a different impact
20
21 == 3. Updating your API Gateway Operations ==
22
Erik Bakker 29.1 23 In our [[crash course>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.WebHome||target="blank"]] on the API Gateway pattern, we have learned about setting up the API Gateway. However, we still need to delve into how to update your existing API Gateway solution. In this microlearning, we will focus on updating the design phase of your API gateway (and the subsequent steps) and the create phase of your API gateway (and subsequent steps). This is to learn the impact of updates and how we can achieve this.
eMagiz 1.1 24
25 * Updating can happen from Design
26 * Updating can happen from Create
27 * Both situations have a different impact
28
Erik Bakker 29.1 29 In the remainder of this microlearning, we will discuss both scenarios to clarify their impact.
eMagiz 1.1 30
31 === 3.1 Updating from Design ===
32
Erik Bakker 29.1 33 After adding an integration to Create, you can change the error handling, the request and response message structure, the parameters, and more. In all these scenarios, you need to change something in the Design phase of eMagiz. The actual change in these parts of the API Gateway solutions is specified in earlier microlearnings. However, what to do after you have made those changes has yet to be discussed. In this microlearning, we will discuss that process within eMagiz. Note that this process **only** applies when the operation already exists in Create. If it does not yet exist in Create, eMagiz will create a new entry and exit gate for you based on the configuration in Design.
eMagiz 1.1 34
Erik Bakker 29.1 35 From our offering on the messaging pattern and how to update it in those scenarios, you can imagine that (parts of) the API Gateway flows need to be updated to reflect your changes. Depending on the exact change, the effect will be seen in the corresponding entry gate or the corresponding exit gate specific to an operation. The division can be made as follows:
eMagiz 1.1 36
Erik Bakker 29.1 37 * When you change something in the configuration of the API Gateway operation itself (e.g., path, error handling, parameters), the change will only impact the corresponding entry gate.
38 * When you change something in the configuration of the backend operation (i.e., endpoint, parameter, system request/response), the change will only impact the specific exit gate.
39 * When you change the gateway request/response message (with transformation), the change will impact **both** the entry gate and the specific exit gate.
40 * When you change the API Gateway's security configuration, the infra flow and all entry gates will be updated (by clicking on Update security in the context menu).
eMagiz 1.1 41
Erik Bakker 29.1 42 eMagiz will automate all changes on the entry gate level except for changing the security configuration due to the impact of such a change. When the change is executed, eMagiz will automatically create a new version of the entry gate to reflect the change. To update changes in the exit gate, you need to execute a manual version bump. This division is made because the exit gate can contain much more customization, while the entry gate is, in most cases, completely generated by eMagiz.
eMagiz 1.1 43
Erik Bakker 29.1 44 === 3.2 Updating from Create ===
eMagiz 1.1 45
Erik Bakker 29.1 46 Apart from updating your API Gateway solution in Create, you can only update parts of the API Gateway solution in Create. Here, we mainly talk about changing the gateway messages. Any other changes on the 'exit gate' level have no particular impact compared to changing parts of other flows. We discern two parts of updating a (gateway) message that you can execute in the Create phase:
eMagiz 1.1 47
Erik Bakker 29.1 48 * Changing the dataType (i.e., from dateTime to date)
49 * Changing / Adding / Deleting valid enum values
eMagiz 1.1 50
Erik Bakker 29.1 51 In both cases, eMagiz will automatically update your Swagger definition by recreating it to reflect these changes and executing a version bump of the infra flow.
eMagiz 1.1 52
Erik Bakker 29.1 53 === 3.3 Updating the Swagger UI ===
eMagiz 1.1 54
Erik Bakker 29.1 55 As is the case with all new versions in Create, the changes will only be effective when you deploy your solution via the eMagiz Deploy phase.
eMagiz 1.1 56
Erik Bakker 29.1 57 {{info}}To ensure that the changes to your Swagger file generated by eMagiz are shown to the end-user, the latest version of the API Gateway runtime infra flow needs to be included in the release and deployed to the correct environment.{{/info}}
eMagiz 1.1 58
Eva Torken 25.1 59 == 4. Key takeaways ==
eMagiz 1.1 60
61 * Updating can happen from Design
62 * Updating can happen from Create
63 * Both situations have a different impact
64 * Adding a new operation to an existing solution does not involve a reset
65 * Updating from Create does not involve a reset
Erik Bakker 29.1 66 * Updating from Design does not involve a reset
eMagiz 1.1 67
Eva Torken 25.1 68 == 5. Suggested Additional Readings ==
eMagiz 1.1 69
Danniar Firdausy 29.2 70 If you are interested in this topic and want more information, please read the help text provided by eMagiz and the following link.
71 * [[Crash Course (Menu)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.WebHome||target="blank"]]
72 ** [[Crash Course API Gateway (Navigation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.WebHome||target="blank"]]
73 *** [[Swagger UI (Explanation)>>doc:Main.eMagiz Academy.Microlearnings.Crash Course.Crash Course API Gateway.crashcourse-api-gateway-swagger-ui||target="blank"]]
eMagiz 1.1 74
Erik Bakker 21.1 75 )))((({{toc/}}))){{/container}}{{/container}}