What you will learn in Building Web APIs with ASP.NET Core
Chapter by chapter
Concepts explained in this book
- cachingCaching is the temporary storage of reusable responses or data so subsequent requests can be served without repeating the original retrieval or computation.
- ApplicationDbContextApplicationDbContext is the application-specific database context class that coordinates access to the application's persistent data through Entity Framework Core.
- logLogging is the recording of application events and diagnostic information for later inspection.
- validation attributeA custom validation attribute is an application-defined attribute that implements a domain-specific input-validation rule.
- schemaA GraphQL schema is a typed definition of the data and operations that a GraphQL API exposes to clients.
- data transfer objectA data-transfer object is an object that packages data for transfer between software components or across an interface.
- uniform interfaceA uniform interface is a REST constraint defining standardized resource identification, manipulation, messages, and hypermedia controls.
- client-server architectureThe client-server approach separates client user-interface concerns from server-side data and application concerns.
- RESTREST is an architectural style for network-based applications that uses standardized operations and resource representations over a uniform interface.
- entityAn entity class is a C# class whose instances represent persistent data entities and their mapped attributes.
- hypermediaHypermedia is media content that embeds links or controls enabling navigation to related resources or actions.
- web serviceA web API is an application programming interface exposed through web protocols, commonly HTTP, for communication between software systems.
- response cache attributeThe ResponseCache attribute is an ASP.NET Core attribute that specifies response-caching metadata and can generate corresponding HTTP cache directives.
- ASP.NET Core IdentityASP.NET Core Identity is an ASP.NET Core framework subsystem that provides abstractions and components for managing user accounts, authentication, and related identity data.
- versioningSource control is a system for tracking, versioning, and managing changes to files such as source code.
- GraphQLGraphQL is a data query and manipulation language for APIs that lets clients specify the data fields they require.
- authorize attributeAuthorizeAttribute is an ASP.NET Core attribute that declares authorization requirements for a controller, action, or endpoint handler.
- claimA claim is a statement about an authenticated user or principal, represented as typed identity data and optionally carrying a value.
- dbcontextDbContext is the Entity Framework Core class that coordinates database queries, entity tracking, and persistence for an application session.
- authorization decisionAuthorization is the process of determining whether an authenticated or anonymous caller is permitted to access a resource or perform an operation.
- CDNA content delivery network is a geographically distributed network of intermediary servers that delivers or caches content from locations closer to clients.
- model bindingModel binding is the ASP.NET Core mechanism that maps incoming request data to action-method parameters and performs framework-managed type conversion and default handling.
- DbSet<T>DbSet<T> is an Entity Framework Core type representing a set of entities of a specified type and providing query and database operations for that set.
- over-fetchingOver-fetching is the retrieval of more data fields or records than a client requires.
- ILoggerProviderA structured logging provider is a logging component that emits events as records with defined fields suitable for structured storage and querying.
- distributed cachingDistributed caching is a caching technique that stores reusable data in shared storage so multiple application instances can access it.
- Content-Security-PolicyA content security policy is a browser-enforced security policy that restricts the sources and forms of content a web page may load or execute.
- bearer authenticationToken-based authentication verifies a caller by requiring a token that represents the caller's authenticated identity or claims.
- dotnet-efdotnet-ef is the .NET command-line tool for Entity Framework Core design-time tasks, including creating, applying, and managing migrations.
- SerilogSerilog is a .NET logging library that records structured log events and supports configurable destinations, enrichment, and message templates.
- authenticationAuthentication is the process of verifying the identity of an API caller or other entity.
- IQueryableIQueryable<T> is a generic .NET interface representing a queryable data source of a specified element type whose query can be composed and translated by a provider.
- code on demandCode on demand is a REST constraint allowing a server to send executable code that extends client behavior.
- filter pipelineThe ASP.NET Core filter pipeline is an ordered execution stage that lets filters inspect or modify request processing around controller actions.
- CORSCross-Origin Resource Sharing (CORS) is a browser security mechanism that controls whether web clients may request resources from a different origin.
- connection stringA connection string is a configuration value that specifies how an application connects to a data source, often including server, database, and credentials.
- ASP.NET Core environmentASPNETCORE_ENVIRONMENT is an environment variable that specifies the runtime environment in which an ASP.NET Core application runs.
- idempotencyIdempotency is the property that repeating an operation produces the same intended effect as performing it once.
- HotChocolateHotChocolate is an open-source .NET library for building GraphQL servers and integrating GraphQL with application services and data sources.
- Swagger UISwagger UI is a browser-based interface that displays OpenAPI descriptions and lets users interactively call documented HTTP APIs.
- dataannotations attributeA data annotation is an attribute-based Entity Framework Core configuration mechanism that adds metadata to entity classes and their members.
- appsettings.jsonappsettings.json is a .NET application configuration file that stores settings as JSON key-value pairs shared across runtime environments unless overridden.
- under-fetchingUnderfetching is the retrieval of insufficient data for a client request, requiring additional requests to obtain the needed information.
- middlewareMiddleware is an HTTP-level component that processes a request and either passes it to the next pipeline component or produces a response.
- stateless systemStatelessness is an interaction constraint in which the server retains no client context between requests.
- controllerAn ASP.NET Core controller is a component that handles web requests through action methods and framework-supported conventions.
- EnableCorsThe EnableCors attribute is an ASP.NET Core MVC attribute that enables cross-origin resource sharing for an endpoint or controller.
- multi-tier applicationA layered system organizes communication through intermediary components that hide or mediate the services behind them.
- ASP.NET CoreASP.NET Core is Microsoft's open-source, cross-platform framework for building web applications and web APIs on .NET.
- role-based access controlA role-based claims mechanism is an authorization approach that grants or restricts access according to roles represented in caller claims.
- Cache-ControlThe Cache-Control header is an HTTP response header that specifies caching directives such as cache scope, duration, revalidation, and storage restrictions.
- secrets.jsonsecrets.json is the local user-secrets configuration file that stores development-only key-value settings outside the project directory.
- ApiControllerThe ApiController attribute is an ASP.NET Core attribute that enables API-controller conventions, including automatic handling of model-binding and validation failures.
- JSONJSON is a text-based data interchange format that represents structured values using objects, arrays, and primitive values.
- code-first approachCode-first is a development approach that defines a data model in application code and derives or updates a database schema from it.
- cacheabilityCacheability is the REST constraint that specifies whether and for how long a response may be reused from a cache.
- SwashbuckleSwashbuckle is a .NET toolset that generates OpenAPI descriptions and provides interactive Swagger documentation for ASP.NET Core APIs.
- SQL ServerSQL Server is Microsoft's relational database management system for storing, querying, and processing structured data.
- appsettings.Development.jsonappsettings.Development.json is an ASP.NET Core environment-specific configuration file whose settings apply to the Development environment and override or extend shared settings.
- appsettings.Production.jsonAn ASP.NET Core configuration file that stores settings specific to the production environment and overrides corresponding values in appsettings.json.
- ApiVersion attributeThe ApiVersion attribute is an ASP.NET Core API-versioning attribute that associates a controller or endpoint with one or more API versions.
- Microsoft.AspNetCore.Mvc.VersioningMicrosoft.AspNetCore.Mvc.Versioning is a NuGet package that provides API-versioning features for ASP.NET Core applications.
- segment-based uri versioningSegment-based URI versioning identifies API versions with distinct URL path segments containing the version identifier.
- semantic versioningSemantic versioning is a version-numbering convention using MAJOR, MINOR, and PATCH components whose increments communicate compatibility and change significance.
- url-based api versioningURI versioning is an API versioning technique that identifies different API versions through distinct URI domains, paths, or segments.
- certificateA TLS certificate is a digitally signed credential that binds an identity to a public key for authenticated encrypted connections.
- permissionA permission is an authorization grant allowing a user or role to perform a specified operation on a resource.
- fluent interfaceThe Entity Framework Core Fluent API is a programmatic configuration interface that defines entity mappings and relationships through chained method calls.
- SwaggerOperation attributeA Swashbuckle annotation attribute that supplies descriptive metadata for an API operation during OpenAPI document generation.
- IValidatableObjectIValidatableObject is a .NET interface that lets an object define validation logic involving its own values and relationships.
- CORS middlewareCORS middleware is an HTTP pipeline component that applies cross-origin request policies to web API requests and responses.
- cross-origin policyThe same-origin policy is a browser security rule that restricts scripts from accessing resources unless their protocol, host, and port origins match.
- preflight requestA preflight request is an HTTP OPTIONS request that a browser sends to determine whether a subsequent cross-origin request is permitted.
- simple requestA simple request is a browser cross-origin HTTP request that meets the requirements for being sent without a preliminary permission check.
- database tableA database table is a relational data structure consisting of rows and named columns that store records of a particular type.
- HTTPHTTP is the stateless application-layer protocol used to transfer web resources and messages between clients and servers.
- SOAPSOAP is a messaging protocol specification for exchanging structured information across networks, commonly encoded in XML.
- uriA URL is a Uniform Resource Locator that identifies the location of a resource or service on a network.
- xmlXML is a markup-based data interchange format for representing structured information with nested elements and attributes.
- CsvHelperCsvHelper is a .NET library for reading and writing delimited text files such as CSV data.
- message templateMessage template syntax is a logging notation that combines a message format with named placeholders whose values are captured as structured properties.
- deploymentDeployment is the process of installing and configuring software in an environment where it can run and be accessed.
- SQLSQL is a standardized language for defining, querying, manipulating, and controlling data in relational database systems.
- navigation propertyA navigation property is an entity property that represents an associated entity or collection of entities in an object-relational model.
- HTTP Authorization headerThe Authorization header is an HTTP request header that carries credentials or authentication information for the requested resource.
- productionA production environment is a runtime deployment context in which an application serves real users or operational workloads.
- logging levelA logging level is a severity classification that determines the minimum importance of events recorded by an application logger.
- DeveloperExceptionPageMiddlewareDeveloperExceptionPageMiddleware is ASP.NET Core middleware that captures pipeline exceptions and generates an HTML page containing detailed diagnostic information.
- ModelStateModelState is the ASP.NET Core representation of model-binding and validation state, including associated errors for an HTTP request.
- access control listAn access control list is a collection of rules specifying which principals are allowed or denied particular access types for a resource.
- SortOrderValidatorAttributeSortOrderValidatorAttribute is the book's custom validation attribute that accepts only configured sort-order values.
- composite keyA composite primary key is a primary key formed from multiple columns whose combined values uniquely identify a record.
- ef core conventionAn Entity Framework Core convention is a built-in naming or modeling rule that automatically maps entity structures to database schema elements.
- object-relational mapperAn object-relational mapper is a software component that maps programming-language objects and operations to relational database structures and SQL operations.
- origin certificateAn origin certificate is a digital certificate presented by an origin server to authenticate it and enable encrypted communication with a connecting service.
- deletionDELETE is an HTTP request method for removing a resource.
- ExceptionHandlerMiddlewareExceptionHandlingMiddleware is HTTP middleware that catches exceptions and forwards relevant error information to a configurable error handler.
- data seedingDatabase seeding is the process of populating a database with an initial, required, or imported set of records.
- request messagePOST is an HTTP request method for creating a resource or causing a state change.
- HTTP PUT methodPUT is an HTTP request method for replacing a resource or creating it when it does not exist.
- virtual machineA virtual machine is a software-emulated computer that provides an isolated operating environment on physical or cloud infrastructure.
- databaseA database is an organized repository that stores structured data for retrieval and modification.
- enricherAn enricher is a Serilog extension component that automatically adds contextual properties to log events.
- launchSettings.jsonlaunchSettings.json is an ASP.NET Core configuration file that defines local development launch profiles, server settings, URLs, and environment variables.
- UserManager<T>UserManager is an ASP.NET Core Identity service API that manages users and user-related operations, including role associations.
- application publishingThe process of preparing application output and files for deployment to a target environment.
- complex type parameterA complex type parameter is an action method parameter represented by an object whose properties can be bound and validated individually.
- FromQuery attributeThe FromQuery attribute directs ASP.NET Core model binding to obtain a parameter's value from the request query string.
- resource identificationResource identification is the REST uniform-interface principle that each resource has an unambiguous identifier.
- resource manipulation through representationsManipulation through representations is the REST uniform-interface principle that a representation contains enough information to modify, delete, or create related resources.
- self-descriptive messagesSelf-descriptive messages contain all information required for a recipient to understand and process them correctly.
- intermediate cachingIntermediate caching is a caching technique in which a proxy or content-distribution service between a client and origin server stores and serves reusable responses.
- NoSQL databaseNoSQL is a class of nonrelational database systems that use flexible data models such as documents, key-value collections, graphs, or wide columns.
- relational database management systemA relational database management system is software that stores structured data in related tables and supports querying and transactional updates.
- server-side cachingServer-side caching is a caching technique that stores application data on the server or in a server-accessible data store for reuse across requests.
- cookieSession-cookie authentication stores authentication state on a server-side session and sends a session identifier to the client in a cookie.
- mutation root typeA mutation root type is the GraphQL operation type that exposes operations that modify application data.
- query root typeA query root type is the GraphQL operation type that exposes read operations for retrieving data.
- serial attributeThe HotChocolate serial attribute configures GraphQL field execution so selected tasks run sequentially instead of concurrently.
- GraphQL queryA GraphQL query is a client-specified operation that selects the fields and data to retrieve from a GraphQL API.
- OpenAPI specificationThe OpenAPI specification is a machine-readable standard for describing HTTP APIs, including their operations, inputs, and outputs.
- ACIDACID is a set of transaction properties—atomicity, consistency, isolation, and durability—that define reliable behavior for database transactions.
- ProblemDetailA problem detail is a machine-readable representation of an HTTP API error containing fields such as title, detail, and status.
- routing conflictA routing conflict occurs when multiple handlers are configured for the same HTTP method and path combination.
- SQL Server Management StudioSQL Server Management Studio (SSMS) is Microsoft's graphical tool for administering SQL Server instances, databases, queries, and scripts.
- IDistributedCacheIDistributedCache is the .NET abstraction for storing and retrieving cached data through an external distributed cache provider.
- roleA role is a named identity-group designation assigned to a user for evaluating the permissions and access the user has.
- migration bundle applicationA migration bundle is a self-contained executable that applies Entity Framework Core database migrations without requiring the .NET SDK or database-management CLI on the target machine.
- nonceA script nonce is a cryptographically unpredictable token that authorizes a specific inline script under a content security policy.
- PostmanPostman is a software tool for constructing, sending, and inspecting HTTP requests to web APIs.
- SQL scriptAn SQL script is a file containing SQL statements that can be reviewed and executed to create or modify database structures or data.
- AzureAzure is Microsoft's public cloud computing platform providing hosted infrastructure, application, data, and monitoring services.
- RegularExpression attributeA regular expression attribute is a .NET validation attribute that accepts an input value only when it matches a specified regular expression.
- IMemoryCacheIMemoryCache is the .NET abstraction for storing and retrieving objects in an application's memory cache.
- application insights logging providerThe Application Insights logging provider is a .NET logging component that sends application log events and telemetry to Azure Application Insights.
- API documentationAPI documentation is structured information that explains an API's capabilities, endpoints, operations, inputs, outputs, and usage to its consumers.
- event idEventId is logging metadata that identifies the event associated with a log record and can contain values of different types.
- Windows ServerWindows Server is Microsoft's operating system platform for hosting server applications and network services.
- BananaCakePopBanana Cake Pop is a web-based GraphQL client and IDE for composing, executing, and inspecting GraphQL operations.
- MinimumLevelMinimumLevel is the Serilog configuration section that defines the minimum severity accepted for log events, including optional source-specific overrides.
- Serilog.Sinks.FileSerilog.Sinks.File is a Serilog sink library that writes log events to one or more text files.
- SourceContextSourceContext is Serilog log-event metadata containing the namespace or category of the class that originated the record.
- database transactionA unit of work is a pattern that tracks objects affected by a business transaction and coordinates persisting their changes and resolving concurrency problems.
- JSON Web TokenJSON Web Token (JWT) is a compact, claims-based token format for securely transmitting information between parties.
- hsts headerAn HTTP security policy that instructs browsers to access a site only over HTTPS.
- referrer policyAn HTTP security policy that controls whether and how much referrer URL information a browser sends with requests.
- security headerAn HTTP security header is an HTTP response-header field that instructs clients or intermediaries to apply a security control.
- static API documentation interfaceA pre-generated, browser-accessible interface that presents API documentation without dynamically exposing the API description service.
- Swagger CodeGenAn open-source command-line tool that generates client libraries, server stubs, and documentation interfaces from Swagger API definitions.
- Swagger Editor NextA web-based editor for creating, viewing, validating, and generating artifacts from Swagger API definitions.
- X-Content-Type-OptionsAn HTTP response header that prevents browsers from interpreting content as a type different from its declared media type.
- x-frame-optionsAn HTTP response header that controls whether a browser may render a page inside frames or iframes.
- swagger.jsonswagger.json is a generated JSON document that describes an HTTP API according to the OpenAPI specification.
- minimal APIMinimal APIs are an ASP.NET Core style for defining HTTP endpoints with minimal ceremony and without requiring controller classes.
- dependency injectionDependency injection is a software design pattern in which a component receives its required dependencies from an external provider rather than constructing them itself.
- CloudflareCloudflare is a cloud platform that provides services for securing, accelerating, and delivering internet applications and traffic.
- edge-origin patternThe edge-origin pattern separates geographically distributed edge-serving components from origin servers that provide the authoritative application content.
- nameserverA DNS server that provides authoritative or recursive answers for domain-name queries.
- Visual StudioVisual Studio is Microsoft's integrated development environment for building software, including .NET applications, with editors, compilers, debugging tools, and project-management features.
- protocol bufferProtocol Buffers is a language-neutral serialization format and interface-definition system for structured messages and service contracts.
- Azure PortalAzure Portal is Azure's web-based graphical management interface for administering cloud services and resources.
- web API action methodAn action method is a controller method that handles an HTTP request and produces an HTTP response.
- many-to-many relationshipA many-to-many relationship is a data-model relationship in which multiple instances of each of two entity types can be associated with multiple instances of the other.
- SaveChangesSaveChanges is the Entity Framework Core method that persists tracked entity changes to the database.
- bean scopeA scoped service is a dependency-injected service instance whose lifetime is limited to a single scope, typically one HTTP request in ASP.NET Core.
- secret managementVisual Studio Secret Manager is a development tool that stores application secrets outside the project source tree and loads them through user-secrets configuration.
- LINQLINQ is a .NET language-integrated query facility that provides a uniform syntax and API for querying and transforming data from different sources.
- reflectionReflection is the programmatic inspection of a type's metadata, members, and structure at runtime.
- regular expressionA regular expression is a formal pattern notation for matching strings that satisfy specified character and sequencing rules.
- SignInManager<T>SignInManager is an ASP.NET Core Identity service that manages user sign-in operations.
- LoggerILogger is a .NET logging abstraction for writing categorized diagnostic messages.
- log entryA log event is a recorded diagnostic event containing information such as a category, severity level, message, and associated metadata.
- no-store directiveThe no-store directive is an HTTP Cache-Control directive that instructs caches not to store a response or its request.
- CsvReaderCsvReader is a CsvHelper class that parses CSV records and maps them to .NET objects.
- serviceAn ASP.NET Core service is a registered application component that provides functionality to other components through dependency injection.
- request pipelineThe HTTP request pipeline is the ordered sequence of ASP.NET Core middleware through which an HTTP request and response are processed.
- CSVCSV is a delimited text format that represents tabular data using records and comma-separated fields.
- join tableA junction table is a database table that associates rows from two other tables to represent a many-to-many relationship.
- name-value pairA key/value pair is a data representation that associates a named key with its corresponding value.
- manual model validationManual ModelState validation is explicit application logic that inspects model-binding and validation results and selects an HTTP response.
- gRPCgRPC is a high-performance, cross-platform remote procedure call framework for communication between distributed applications.
- page sizeA page size is a parameter specifying the number of records returned in each page of a paged result set.
- separation of concernsSeparation of concerns is a design principle that partitions a system so distinct responsibilities are handled independently.
- paginationClient-side paging retrieves the complete result set and divides it into pages for display on the client.
- sorting algorithmSorting is the ordering of query results according to one or more specified fields or expressions.
- claims-based access controlClaims-based access control is an authorization model that evaluates claims associated with an authenticated entity, optionally including their values, to determine access.
- policy-based access controlPolicy-based access control is an authorization model that evaluates configurable requirements and handlers, including arbitrary logic over a principal's claims.
- IParameterFilterIParameterFilter is a Swashbuckle interface for applying custom processing to parameter descriptions during OpenAPI document generation.
- result resourceActionResult is an ASP.NET Core action return type that can represent either a typed response value or an HTTP action result.
- automatic model state validationAutomatic model state validation is the framework behavior that short-circuits an API action with a client-error response when ModelState is invalid.
- filter attributeA filter attribute is an attribute-based ASP.NET Core component that applies filter behavior to selected controllers or action methods.
- IActionModelConvention filterAn IActionModelConvention filter is an ASP.NET Core MVC convention component that modifies the action model during application model construction.
- HTTP GETGET is an HTTP request method for retrieving a resource or representation.
- Program.cs fileProgram.cs is the .NET application entry-point source file that can contain host construction, service registration, and middleware configuration.
- Application InsightsApplication Insights is an Azure monitoring service that ingests, monitors, and analyzes logs, status messages, and performance telemetry from applications and services.
- migrationA database migration is a versioned set of changes that updates a database schema or related persisted data to match an application's data model.
- data storage modelA data storage model specifies how data entities, attributes, relationships, and records are organized for persistence.
- denormalizationDenormalization is the deliberate combination or duplication of related data to simplify retrieval or improve access performance.
- DocumentA database document is a self-contained record represented as structured fields, commonly including nested related information.
- Entity Framework CoreEntity Framework Core is a cross-platform object-relational mapper for .NET that enables applications to work with databases using .NET objects.
- collectionA document-database collection is a grouping of related documents that can contain records with flexible schemas.
- normalizationNormalization is the organization of relational data into structured tables to reduce redundancy and preserve data integrity.
- primary keyA primary key is a property or column whose value uniquely identifies a record in an entity or table.
- horizontal scalingHorizontal scaling increases capacity by adding or removing service instances rather than enlarging one instance.
- schema flexibilityA flexible schema is a database structure that allows documents or records in the same collection to have different fields or shapes.
- vertical scalingVertical scaling is increasing the processing capacity of a single server or node.
- KestrelKestrel is an open-source, cross-platform, event-driven, asynchronous HTTP server implementation for ASP.NET Core.
- task-based asynchronous patternThe Task-based Asynchronous Pattern is a .NET asynchronous programming pattern in which operations return tasks that represent eventual completion and optional results.
- framework-dependent deploymentA .NET publishing and deployment mode in which an application requires a compatible .NET runtime installed on the target system.
- client-side validationClient-side validation is the checking of user input in the client application before a request is sent to a server.
- server validationServer-side validation is the checking of request input by the server before accepting or processing that input.
- dotnet-sql-cache packageThe sql-cache command is a .NET CLI command that creates the database schema required by the SQL Server distributed cache provider.
- XML commentsXML documentation is structured source-code documentation written in XML comment elements and consumed by development or documentation tools.
- IP maskingIP masking is the concealment of an origin resource's network address behind an intermediary address.
- using keywordA using declaration is a C# construct that disposes a compatible resource automatically at the end of its enclosing scope.
- self-contained modeA .NET publishing mode that packages the required .NET libraries and runtime with the application so the target system does not need them installed separately.
- trimmingA deployment optimization technique that removes unused assemblies, types, and members from an application package.
- Microsoft.Extensions.Caching.SqlServerMicrosoft.Extensions.Caching.SqlServer is a .NET library package that provides an IDistributedCache implementation backed by SQL Server.
- XML documentation fileAn XML documentation file is a compiler-generated file containing structured documentation extracted from specially formatted source-code comments.
- SQL injectionSQL injection is a security vulnerability in which untrusted input changes the structure or meaning of a SQL statement.
- SQL parameterAn SQL parameter is a typed placeholder whose value is supplied separately from an SQL statement's command text.
- 500 Internal Server ErrorThe HTTP 500 status code indicates that the server encountered an unexpected condition preventing it from fulfilling the request.
- validationData validation is the process of checking incoming data for validity, accuracy, meaningfulness, and security before processing it.
- Windows publishing profileA deployment configuration that stores the settings and options used to publish an application to a target environment.
- database management toolA database management system is software that stores, organizes, retrieves, and manages access to structured data.
- terminal middlewareTerminal middleware is middleware that can end HTTP request processing by returning a response without invoking later pipeline components.
- Web DeployWeb Deploy is a Microsoft deployment tool for synchronizing and publishing web applications and their related content to web servers.
- endpointAn endpoint is a network-accessible entry point through which a web API exposes an operation or resource.
- IExceptionHandlerPathFeatureIExceptionHandlerPathFeature is an ASP.NET Core feature interface that exposes the exception and request path associated with exception-handler re-execution.
- MapGetMapGet is an ASP.NET Core minimal-API method that maps HTTP GET requests to route handlers.
- Problem DetailsProblemDetails is an object model for representing machine-readable details about an HTTP API error response.
- UseExceptionHandlerUseExceptionHandler is an ASP.NET Core application-builder method that configures exception handling in the request pipeline.
- moderator roleThe Moderator role is an application-defined authorization role for callers permitted to perform designated moderation operations.
- AddSimpleConsoleAddSimpleConsole is a .NET logging-builder method that adds and configures the console logging provider.
- appsettings-based logging configurationAppsettings-based logging configuration sets provider behavior through logging settings in ASP.NET Core configuration files.
- ClearProvidersClearProviders is a logging-builder method that removes the currently configured logging providers.
- ILoggingBuilderILoggingBuilder is a .NET interface for configuring logging services and providers.
- console logging providerThe console logging provider writes log messages to the application's console output.
- ClaimsPrincipalClaimsPrincipal is a .NET identity object representing a user or caller through one or more claims-based identities.
- policyAn authorization policy is a named set of requirements that determines whether an authenticated principal may perform an operation.
- RequireAssertionRequireAssertion is an ASP.NET Core authorization-policy builder method that adds a requirement evaluated by a custom assertion function.
- stubA stub is generated proxy or base code that provides the callable interface for communicating with a remote service.
- SwaggerSwagger is a set of tools for describing, documenting, and interacting with HTTP APIs.
- absolute expirationAbsolute expiration is a cache policy that invalidates an entry at a fixed time or after a fixed duration.
- cache entryA cache entry is a stored value associated with a cache key and optional expiration metadata.
- cache keyA cache key is an identifier that distinguishes a cached entry associated with a particular request or data variant.
- TryGetValueTryGetValue<T> is an IMemoryCache method that attempts to retrieve a value by key and reports whether a matching cache entry exists.
- subdomainA subdomain is a subordinate domain name created within a parent domain's namespace.
- schema filterISchemaFilter is a Swashbuckle interface for modifying generated OpenAPI schemas for API parameters, responses, properties, and complex types.
- server-side pagingServer-side paging returns only the subset of records requested for a page.
- skipThe Skip method is a LINQ sequence operation that omits a specified number of elements from the beginning of a sequence.
- takeThe Take method is a LINQ sequence operation that returns a specified number of elements from the beginning of a sequence.
- breaking changeA breaking change is a modification that can cause existing clients or system integrations to stop working correctly.
- Dynamic LINQDynamic LINQ is a .NET library that enables LINQ query operations to be constructed from string expressions at runtime.
- orderBy clauseOrderBy is a LINQ query operator or extension method that orders query results by a specified key selector or ordering expression.
- security requirementA security requirement is an API documentation configuration declaration specifying the security schemes required for an operation or API.
- GraphQL mutationA GraphQL mutation is an operation that requests a state-changing action from a GraphQL server and can return selected resulting fields.
- .NET.NET is Microsoft's cross-platform software development platform for building and running applications and services.
- rolling intervalA rolling interval is a file-sink setting that determines how often a new log file is created for subsequent events.
- GenerateDocumentationFileGenerateDocumentationFile is a .NET project setting that instructs the compiler to generate an XML documentation file during builds.
- IIS ManagerIIS Manager is the graphical administration tool for configuring Internet Information Services and its hosted websites.
- OpenSSLOpenSSL is an open-source toolkit and command-line tool for cryptography, certificates, and related security files.
- PFXPFX is a password-protected archive format for storing a private key together with its certificate and certificate chain.
- Web Management ServiceA Windows service for IIS that enables remote administration and deployment operations for web applications.
- outputTemplateAn output template is a format specification that determines how log events are rendered as text.
- ExecuteSqlRawExecuteSqlRaw is an Entity Framework Core method that executes a raw SQL command against the underlying database.
- transactionA transaction is a database operation or sequence of operations treated as a single unit of work with defined consistency and completion behavior.
- identity columnAn identity column is a SQL Server table column whose values are automatically generated, typically by incrementing a stored counter.
- identity_insertIDENTITY_INSERT is a SQL Server session setting that controls whether explicit values may be inserted into an identity column.
- Key attributeThe Key data annotation attribute is a .NET model annotation that marks a property as an entity's primary key.
- Swashbuckle.AspNetCore.AnnotationsA Swashbuckle annotation is an attribute-based mechanism for enriching generated OpenAPI documentation for an ASP.NET Core API.
- async/awaitThe await operator asynchronously waits for a task to complete without blocking the executing thread.
- secure by designSecurity by design is an engineering approach that incorporates security considerations into system design and implementation from the beginning.
- filteringFiltering behavior is the rule that determines which data items are included in a returned result based on a condition applied to their values.
- database-first designA development workflow that derives application data models or entities from an existing database schema.
- unstructured loggingUnstructured logging is the recording of application events as sequential free-form text without a fixed schema for fields or records.
- RouteAttributeA route attribute is an ASP.NET Core attribute that associates a controller or action with a route template.
- db_owner roleThe db_owner role is a SQL Server database role whose members have full permissions on a database.
- database userA database user is a database-level security principal that authorizes a login to access database objects.
- SQL authenticationSQL Server authentication verifies a connection using credentials managed by SQL Server.
- SQL loginA database login is a SQL Server instance-level security principal that can authenticate to the server.
- SQL Server instanceA SQL Server instance is an independently configured and running installation of the SQL Server database engine.
- Windows authenticationWindows authentication verifies a SQL Server connection using the identity of a Windows account.
- CRUDCRUD is the set of create, read, update, and delete operations used to manage persistent data.
- CustomKeyValueAttributeCustomKeyValueAttribute is a book-specific C# attribute that associates arbitrary JSON keys and values with properties or parameters.
- expression treeAn expression tree is a tree-structured representation of code expressions that can be inspected, transformed, or translated by a query provider.
- Azure resource groupAn Azure resource group is a logical container for managing related Azure resources as a unit.
- Azure SpotAzure Spot is an Azure compute pricing option that uses spare capacity at a discount while allowing eviction when Azure needs that capacity.
- virtual networkAn Azure virtual network is an isolated network in Azure that provides connectivity and traffic control for deployed resources.
- service containerA service container is a registry and runtime that stores service definitions, creates or reuses service instances, and manages their lifetimes.
- code generationCode generation is the automated production of source code or compiled code from a higher-level specification.
- gRPC serviceA gRPC service is a remotely callable service defined by Protocol Buffers and implemented through generated server bindings.
- IServiceCollectionA service collection is a registry of application services and their dependency-injection configurations.
- proto3Proto3 is version 3 of the Protocol Buffers interface-description and serialization syntax.
- plain old CLR objectA plain old CLR object (POCO) is a normal .NET class without framework-specific inheritance or dependencies.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.
