WebFrameworkCSharpAPI 1.0.7
dotnet add package WebFrameworkCSharpAPI --version 1.0.7
NuGet\Install-Package WebFrameworkCSharpAPI -Version 1.0.7
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="WebFrameworkCSharpAPI" Version="1.0.7" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="WebFrameworkCSharpAPI" Version="1.0.7" />
<PackageReference Include="WebFrameworkCSharpAPI" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add WebFrameworkCSharpAPI --version 1.0.7
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: WebFrameworkCSharpAPI, 1.0.7"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package WebFrameworkCSharpAPI@1.0.7
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=WebFrameworkCSharpAPI&version=1.0.7
#tool nuget:?package=WebFrameworkCSharpAPI&version=1.0.7
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
C++ HTTP/HTTPS server with C# API
Quick start
Server needs few files to run:
- web.json with routes
- Executors
- config.json with server settings
All these files must be in the same directory as executable
Main.cs
using Framework;
using Framework.Exceptions;
namespace hello_csharp
{
internal class Program
{
static void Main(string[] args)
{
try
{
using WebFramework server = new("config.json"); // Create server
server.Start(true, () => Console.WriteLine()); // Start server and wait
}
catch (WebFrameworkException e)
{
Console.WriteLine(e.Message);
Environment.Exit(-1);
}
catch (Exception e)
{
Console.WriteLine(e.Message);
Environment.Exit(-2);
}
}
}
}
Settings
web.json
{
"HelloExecutor": {
"route": "",
"loadType": "initialization"
}
}
Config
config.json
{
"WebServer": {
"ip": "0.0.0.0",
"port": 8080,
"timeout": 0
},
"WebFramework": {
"settingsPaths": [
"web.json"
],
"loadSources": [
"hello_executor"
],
"assetsPath": "assets",
"templatesPath": "templates",
"cachingSize": 536870912,
"webServerType": "multiThreaded",
"HTTPS": {
"useHTTPS": false,
"pathToCertificate": "certificates/cert.pem",
"pathToKey": "certificates/key.pem"
},
"defaultAssetsPath": "WebFrameworkAssets"
},
"Logging": {
"usingLogging": false,
"dateFormat": "DMY",
"logFileSize": 134217728
},
"ThreadPoolServer": {
"threadCount": 0
}
}
Run sample
After running server open url 127.0.0.1:8080.
You will see response from server
{
"message": "Hello, World!"
}
Executors
Executors are C++ classes that responsible for giving responses for their route(url).
Source code of HelloExecutor from example
HelloExecutor.h
#pragma once
#include "Executors/BaseStatelessExecutor.h"
namespace executors
{
class HelloExecutor : public framework::BaseStatelessExecutor
{
public:
HelloExecutor() = default;
void doGet(framework::HTTPRequest& request, framework::HTTPResponse& response) override;
~HelloExecutor() = default;
};
}
HelloExecutor.cpp
#include "HelloExecutor.h"
#include "JSONBuilder.h"
namespace executors
{
void HelloExecutor::doGet(framework::HTTPRequest& request, framework::HTTPResponse& response)
{
response.addBody(json::JSONBuilder(CP_UTF8).appendString("message", "Hello, World!"));
}
DECLARE_EXECUTOR(HelloExecutor);
}
More information you can find in wiki.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.