.NET Nakama
45 FOLLOWERS
.NET Nakama is a blog about .NET technologies and the development of Application Programming Interfaces (APIs) using mainly .NET Core.
.NET Nakama
1y ago
Introduction
Idempotency in Web APIs ensures that the API works correctly (as designed) even when consumers (clients) send the same request multiple times. To simplify the integration of Idempotency in an API project, we could use the IdempotentAPI open-source NuGet library. IdempotentAPI implements an ASP.NET Core attribute (filter) to handle the HTTP write operations (POST and PATCH) to affect only once for the given request data and idempotency key.
In February 2022, IdempotentAPI 1.0.0-RC-01 was released with many improvements. The community’s contribution plays a crucial role in the evolu ..read more
.NET Nakama
1y ago
Introduction
In our previous article (.NET Nakama, 2022 July), we saw that Transient faults are inevitable temporary errors (especially in microservice and cloud-based applications). An API is Resilient when it can recover from transient failures and continue functioning (in a way that avoids downtime or data loss). Therefore, we have learned the main strategies to handle transient faults. Transient fault handling may seem complicated, but libraries like Polly can simplify it.
In this article, we will use the Polly library to apply and combine the Retries, Circuit-Breaker, Network Timeout, and ..read more
.NET Nakama
2y ago
Introduction
Our previous article (.NET Nakama, 2022 March) taught us about the LINQ architecture and technologies, query syntaxes, etc. As we saw, we can define a generic class by using the <T> sign after the class name, e.g. MyClassName<T>. The T is the generic type parameter in which we can use any word (e.g., TKey, TCustomer, etc.). Commonly, the name of the generic type parameter starts with a T to clearly show that it’s a type. We can use a generic class or method for different types without the cost of boxing operations and the risk of runtime casts.
In addition, we saw that ..read more
.NET Nakama
2y ago
Introduction
Before selecting or attempting any integration with an API, most developers check out its API documentation. Keeping the API documentation up to date to reflect the software changes is challenging and requires time and effort. In the case of Web APIs, we would like to document the following:
Authorization Types (e.g., API Key, Bearer token, Authorization code, etc.)
Action Methods: The endpoints, HTTP Methods, Headers, etc.
Data Contracts: The description of the data to be exchanged between the service and a client. We can show each parameter’s name, type, restrictions, etc.
Exam ..read more
.NET Nakama
2y ago
Introduction
Before releasing an API, we should consider how to release future improvements and possible breaking changes. For example, it is most likely that something would have to change in our APIs, such as the business requirements, resources and their relationships, third-party APIs, etc.
In general, versioning is the process of assigning a unique version (based on a specific format) per software release. The most widely used versioning format is the Semantic versioning (also known as SemVer) which is defined as follows: X.Y.Z (Major.Minor.Patch).
Major: A version for incompatible API c ..read more
.NET Nakama
2y ago
Introduction
Before releasing an API, we should consider how to release future improvements and possible breaking changes. For example, it is most likely that something would have to change in our APIs, such as the business requirements, resources and their relationships, third-party APIs, etc.
In general, versioning is the process of assigning a unique version (based on a specific format) per software release. The most widely used versioning format is the Semantic versioning (also known as SemVer) which is defined as follows: X.Y.Z (Major.Minor.Patch).
Major: A version for incompatible API c ..read more
.NET Nakama
2y ago
Introduction
Designing REST Web APIs in practice has many challenges. Usually, various questions are born for different parts of the project. Our decisions can determine, among others, the usability, extensibility, and performance of our APIs.
In our previous articles, we saw how the REST architectural style guides us to create Web APIs by defining six constraints (principles) and some key points that we can consider when designing APIs (.NET Nakama, 2021 September 4). Furthermore, we saw some practical suggestions for adopting consistent naming conventions in our URLs (API endpoints) and how ..read more
.NET Nakama
2y ago
Introduction
The REST architectural style emphasizes a uniform interface between components, in which the information is transferred in a standardized form (.NET Nakama, 2021 September 4). One of the architectural constraints (identification of resources) to achieve that is to uniquely identify the location of each resource through a single URL.
In practice, when we are trying to design the URLs structure, various questions and possible conflicts between the team members may arise. In this article, we will see some practical suggestions for adopting consistent: naming conventions in our URLs ..read more
.NET Nakama
2y ago
Introduction
An Application Programming Interface (API) simplifies the use of complex actions in software. Technically, an API describes how software components or systems should interact (communicate) with each other (Carver P., 2014). APIs are essential to modern organizations, as they provide a flexible way of working in (.NET Nakama, 2020 August):
Software Code (e.g., by organizing code, reusing code, providing different restrictions, etc.),
Software Product (e.g., by providing extensions or new features-product more quickly), and
Teams or Persons (e.g., by organizing and splitting work ..read more
.NET Nakama
2y ago
Introduction
One year has passed since the publication of the first article in the .NET Nakama blog. Happy birthday .NET Nakama ?.
Figure 1. - Happy birthday .NET Nakama.
This blog has started from my need to help other developers improve their .NET skills. So, I decided to share my learning journey, teaching materials, thoughts, ideas, and source code. Along the way, I am also improving my skills and meeting new people. It’s a great experience so far, and I hope to keep blogging about .NET and be a .NET Nakama for you.
You may be thinking about what Nakama means. Nakama (仲間) is a Japanese wor ..read more