NextJS с веб-API ASP.NET CoreC#

Место общения программистов C#
Ответить
Anonymous
 NextJS с веб-API ASP.NET Core

Сообщение Anonymous »

Итак, у меня проблема: серверная часть находится в контейнере, что может быть причиной, но я не уверен, почему я задаю вопрос. Проблема в том, что когда я пытаюсь сделать запрос к серверной части, я получаю эту ошибку DEPTH_ZERO_SELF_SIGNED_CERT
Я пробовал использовать --experimental-https для команды run dev, и это не сработало.< /p>
Проблема в том, что даже когда я явно выставляю небезопасный порт только через файл docker-compose.yml (8080), он не работает, и безопасное соединение все еще доступно, и когда я даже пытаюсь чтобы сделать запрос на небезопасное соединение, я все равно получаю ту же ошибку.
Это Dockerfile, docker-compose.yml и FitnessPlannerAPICalls.ts:
Файл Docker
# See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.

# This stage is used when running from VS in fast mode (Default for Debug configuration)
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
USER app
WORKDIR /app
EXPOSE 8080
# Uncomment the line below to enable HTTPS
#EXPOSE 8081

# This stage is used to build the service project
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
ARG BUILD_CONFIGURATION=Release
WORKDIR /src
COPY ["FitnessPlannerAPI/FitnessPlannerAPI.csproj", "FitnessPlannerAPI/"]
RUN dotnet restore "./FitnessPlannerAPI/FitnessPlannerAPI.csproj"
COPY . .
WORKDIR "/src/FitnessPlannerAPI"
RUN dotnet build "./FitnessPlannerAPI.csproj" -c $BUILD_CONFIGURATION -o /app/build

# This stage is used to publish the service project to be copied to the final stage
FROM build AS publish
ARG BUILD_CONFIGURATION=Release
RUN dotnet publish "./FitnessPlannerAPI.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false

# This stage is used in production or when running from VS in regular mode (Default when not using the Debug configuration)
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "FitnessPlannerAPI.dll"]

docker-compose.yml
networks:
fitnessplanner:
driver: bridge

services:
fitnessplannerapi:
container_name: fitnessplannerapi
image: ${DOCKER_REGISTRY-}fitnessplannerapi
build:
context: .
dockerfile: FitnessPlannerAPI/Dockerfile
ports:
- "1337:8080"
# Uncomment the line below to enable HTTPS
#- "1337:8081"
depends_on:
- fitnessplannersqlserver
environment:
- DB_HOST=fitnessplannersqlserver
- DB_NAME=FitnessPlannerDB
- DB_SA_PASSWORD=your-secure-pw
networks:
- fitnessplanner
fitnessplannersqlserver:
container_name: fitnessplannersqlserver
image: mcr.microsoft.com/mssql/server:2022-latest
environment:
- ACCEPT_EULA=Y
- MSSQL_SA_PASSWORD=your-secure-pw
ports:
- 1433:1433
volumes:
- ./data:/var/opt/mssql/data
- ./log:/var/opt/mssql/log
- ./secrets:/var/opt/mssql/secrets
networks:
- fitnessplanner


fitnessPlannerAPICalls.ts
"use server"

// Define the user schema as a TypeScript interface
export interface UserInitialSetupSchema {
userId: string;
age: number;
gender: string;
height: number;
weight: number;
fitnessLevel: string;
fitnessGoal: string;
workoutFrequency: number;
}

export async function addUserInitialSetup(data : UserInitialSetupSchema)
{
// USING ENCRYPTED CONNECTION
// const apiEndpoint = 'https://localhost:1337/api/userinitialsetup/add';
// USING UNENCRYPTED CONNECTION
const apiEndpoint = 'http://localhost:1337/api/userinitialsetup/add';

try {
const response = await fetch(apiEndpoint, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json',
},
body: JSON.stringify(data),
});

switch (response.status) {
case 200:
return 'User initial setup added successfully.';
case 400:
return 'User already exists.';
default:
return 'Something went wrong.' + await response.json();
}
} catch (error) {
console.error('Failed to add user initial setup:', error);
return 'Failed to add user initial setup.';
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... re-web-api
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»