All Projects → asyncapi → jasyncapi

asyncapi / jasyncapi

Licence: Apache-2.0 license
/jay-sync-api/ is a Java code-first tool for AsyncAPI specification

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects
HTML
75241 projects

Projects that are alternatives of or similar to jasyncapi

nodejs-template
Node.js template for the AsyncAPI Generator
Stars: ✭ 19 (-34.48%)
Mutual labels:  asyncapi
Udemy-MyEvernote-Sample-Project
ASP.NET MVC Yazılımcıların Yükselişi eğitimim için hazırladığım örnek proje.
Stars: ✭ 66 (+127.59%)
Mutual labels:  code-first
nestjs-asyncapi
NestJS AsyncAPI module - generate the documentation of your event-based services using decorators
Stars: ✭ 88 (+203.45%)
Mutual labels:  asyncapi
home
This is the home page for the API specification toolbox.
Stars: ✭ 16 (-44.83%)
Mutual labels:  asyncapi
run-aspnetcore-basics retired
One Solution - One Project for web application development with Asp.Net Core & EF.Core. Only one web application project which used aspnetcore components; razor pages, middlewares, dependency injection, configuration, logging. To create websites with minimum implementation of asp.net core based on HTML5, CSS, and JavaScript. You can use this boi…
Stars: ✭ 15 (-48.28%)
Mutual labels:  code-first
go-watermill-template
Go template for the AsyncAPI Generator using Watermill module
Stars: ✭ 38 (+31.03%)
Mutual labels:  asyncapi
wsapix
Next generation Websocket framework for nodejs
Stars: ✭ 17 (-41.38%)
Mutual labels:  asyncapi
graphql2ts
Transform .graphql to graphql-js typescript
Stars: ✭ 41 (+41.38%)
Mutual labels:  code-first
nestjs-prisma-starter
Starter template for NestJS 😻 includes GraphQL with Prisma Client, Passport-JWT authentication, Swagger Api and Docker
Stars: ✭ 1,107 (+3717.24%)
Mutual labels:  code-first
parser-go
It parses AsyncAPI documents.
Stars: ✭ 43 (+48.28%)
Mutual labels:  asyncapi
modelina
Library for generating data models based on inputs such as AsyncAPI, OpenAPI, or JSON Schema documents.
Stars: ✭ 55 (+89.66%)
Mutual labels:  asyncapi
uJet
Umbraco Jet (uJet) is a Code First approach to building MVC applications in Umbraco 7.
Stars: ✭ 16 (-44.83%)
Mutual labels:  code-first
java-spring-template
Java Spring template for the AsyncAPI Generator
Stars: ✭ 41 (+41.38%)
Mutual labels:  asyncapi
boats
Beautiful Open Api Template System
Stars: ✭ 28 (-3.45%)
Mutual labels:  asyncapi
openapi-filter
Filter internal paths, operations, parameters, schemas etc from OpenAPI/Swagger/AsyncAPI definitions
Stars: ✭ 112 (+286.21%)
Mutual labels:  asyncapi
nestjs-asyncapi
Async API module for Nestjs that provides documentation generation using your existing code (similar to Nestjs swagger module)
Stars: ✭ 22 (-24.14%)
Mutual labels:  asyncapi
Northwindtraders
Northwind Traders is a sample application built using ASP.NET Core and Entity Framework Core.
Stars: ✭ 4,628 (+15858.62%)
Mutual labels:  code-first
asynction
SocketIO python framework driven by the AsyncAPI specification. Built on top of Flask-SocketIO. Inspired by Connexion.
Stars: ✭ 40 (+37.93%)
Mutual labels:  asyncapi
ServiceModel.Grpc
Code-first for gRPC
Stars: ✭ 64 (+120.69%)
Mutual labels:  code-first
converter-go
Convert AsyncAPI documents from older to newer versions with Golang
Stars: ✭ 17 (-41.38%)
Mutual labels:  asyncapi


AsyncAPI logo

Building the future of event-driven architectures

We're on a mission to standardize message-based communication and increase interoperability of the different systems out there.

⚠️ This project doesn't support AsyncAPI 1.x

This monorepo stores modules, which simplifies interacting with AsyncAPI in jvm ecosystem.

Index

Monorepo structure

Currently here it's splitted on two submodules:

core

This submodule stores projection of AsyncAPI specification to java classes. Each class is being properly annotated with jsr-305 annotations, which allows to use it in null-safety languages like kotlin without extra headache.

<dependency>
  <groupId>com.asyncapi</groupId>
  <artifactId>asyncapi-core</artifactId>
  <version>1.0.0-EAP</version>
</dependency>

plugin

This submodule stores plugins, which automatizes work with AsyncAPI specification.

Currently here are three plugins:

maven

Maven plugin helps to generate AsyncAPI specification from hand-crafted AsyncAPI class at choosed build cycle step.

<dependency>
  <groupId>com.asyncapi</groupId>
  <artifactId>asyncapi-maven-plugin</artifactId>
  <version>1.0.0-EAP</version>
  <type>maven-plugin</type>
</dependency>

Source code with description and example

gradle

Gradle plugin helps to generate AsyncAPI specification from hand-crafted AsyncAPI class at choosed build cycle step.

Source code with description and example

IDEA

IDEA plugin simplifies work with AsyncAPI specification not only in Intellij IDEA, but in others IDE from JetBrains

JetBrains plugin marketplace

Source code with description and example

Release

Sonatype Instruction with references and clarifications

⚠️ WARNING: next artifacts MUST always have common version at release. Because of dependency of plugins from core

Release maven artifacts:

  • Request credentials for one of AsyncAPI's account on Sonatype's Jira, which is synced with Sonatype's nexus
  • Generate pgp key if it was not generated yet
  • Create /Users/{userName}/.m2/settings.xml
<settings>
  <profiles>
    <profile>
      <id>ossrh</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <gpg.keyname>GPG key name</gpg.keyname>
        <gpg.executable>gpg</gpg.executable>
        <gpg.passphrase>GPG passphrase for selected key</gpg.passphrase>
        <gpg.homedir>/Users/{userName}/.gnupg</gpg.homedir>
      </properties>
    </profile>
  </profiles>
  <servers>
    <server>
      <id>ossrh</id>
      <username>Jira username</username>
      <password>Jira password</password>
    </server>
  </servers>
</settings>
  • Choose new release version and set it to root pom.xml.

Example:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.asyncapi</groupId>
    <artifactId>asyncapi</artifactId>
    <version>{new release version}</version>

    <!-- Other project properties was omitted. They are located below and won't be updated generally -->

</project>

Example

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>asyncapi-plugin</artifactId>
        <groupId>com.asyncapi</groupId>
        <version>{new release version}</version>
    </parent>

    <!-- Other project properties was omitted. They are located below and won't be updated generally -->

</project>
  • Build it, test it and release it to maven central repository
➜  async-api git:(1.0.0-EAP) ✗ mvn clean deploy -P release 

Release gradle artifacts:

release to maven central

gradle gpg instruction
sonatype's instruction for deployment releasing

  • Request credentials for one of AsyncAPI's account on Sonatype's Jira, which is synced with Sonatype's nexus
  • Generate pgp key if it was not generated yet
    • export secret key ring file containing your private key
      gpg --keyring secring.gpg --export-secret-keys > ~/.gnupg/secring.gpg
  • Create /Users/{userName}/.gradle/gradle.properties
# gpg
signing.keyId={key name}
signing.password={key passphrase}
signing.secretKeyRingFile=/Users/{userName}/.gnupg/secring.gpg

# oss.sonatype.org
ossrhUsername={Jira username}
ossrhPassword={Jira password}
version = "{new release version}"
  • Build it, test it and release it to maven central repository
➜  asyncapi-plugin-gradle git:(1.0.0-EAP) ✗ ./gradlew publishPluginMavenPublicationToMavenRepository
  • Go to stagin repositories and release it manually
    • Select repository
    • Click close and wait some time
    • Click release

release to gradle plugins

  • Request key and secret for gradle account
  • Update /Users/{userName}/.gradle/gradle.properties with gradle credential
gradle.publish.key={key}
gradle.publish.secret={secret}
➜  asyncapi-plugin-gradle git:(1.0.0-EAP) ✗ ./gradlew publishPlugins
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].