GraphQL Java DateTime 项目教程
graphql-java-datetime项目地址:https://gitcode.com/gh_mirrors/gra/graphql-java-datetime
1. 项目的目录结构及介绍
GraphQL Java DateTime 项目的目录结构如下:
graphql-java-datetime/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ ├── graphql/
│ │ │ │ ├── scalars/
│ │ │ │ │ ├── datetime/
│ │ │ │ │ │ ├── DateTimeScalar.java
│ │ │ │ │ │ └── ...
│ │ │ │ └── ...
│ │ │ └── ...
│ │ └── resources/
│ │ └── ...
│ └── test/
│ ├── java/
│ │ ├── graphql/
│ │ │ ├── scalars/
│ │ │ │ ├── datetime/
│ │ │ │ │ ├── DateTimeScalarTest.java
│ │ │ │ │ └── ...
│ │ │ └── ...
│ │ └── ...
│ └── resources/
│ └── ...
├── .gitignore
├── LICENSE
├── README.md
├── build.gradle
├── gradlew
├── gradlew.bat
└── settings.gradle
目录结构介绍
src/main/java/graphql/scalars/datetime/
: 包含主要的日期时间标量类型实现文件,如DateTimeScalar.java
。src/test/java/graphql/scalars/datetime/
: 包含测试文件,如DateTimeScalarTest.java
。.gitignore
: Git 忽略文件配置。LICENSE
: 项目许可证文件。README.md
: 项目说明文档。build.gradle
: 项目构建配置文件。gradlew
和gradlew.bat
: Gradle 包装脚本。settings.gradle
: Gradle 设置文件。
2. 项目的启动文件介绍
项目的启动文件主要是 DateTimeScalar.java
,位于 src/main/java/graphql/scalars/datetime/
目录下。该文件定义了 GraphQL 的日期时间标量类型,并提供了序列化、解析和验证的方法。
package graphql.scalars.datetime;
import graphql.Internal;
import graphql.language.StringValue;
import graphql.language.Value;
import graphql.schema.Coercing;
import graphql.schema.CoercingParseLiteralException;
import graphql.schema.CoercingParseValueException;
import graphql.schema.CoercingSerializeException;
import graphql.schema.GraphQLScalarType;
import java.time.DateTimeException;
import java.time.OffsetDateTime;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.format.DateTimeParseException;
import java.util.function.Function;
import static graphql.scalars.util.Kit.typeName;
import static java.time.format.DateTimeFormatter.ISO_LOCAL_DATE;
import static java.time.temporal.ChronoField.HOUR_OF_DAY;
import static java.time.temporal.ChronoField.MINUTE_OF_HOUR;
import static java.time.temporal.ChronoField.NANO_OF_SECOND;
import static java.time.temporal.ChronoField.OFFSET_SECONDS;
import static java.time.temporal.ChronoField.SECOND_OF_MINUTE;
/**
* Access this via {@link graphql.scalars.ExtendedScalars#DateTime}
*/
@Internal
public final class DateTimeScalar {
// 具体实现代码
}
3. 项目的配置文件介绍
项目的配置文件主要包括 build.gradle
和 settings.gradle
。
build.gradle
该文件用于配置项目的构建过程,包括依赖管理、任务定义等。
plugins {
id 'java'
}
group 'com.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
implementation 'com.graphql-java:graphql-java:16.2'
testImplementation 'junit:junit:4.13.2'
graphql-java-datetime项目地址:https://gitcode.com/gh_mirrors/gra/graphql-java-datetime