RepoPilot

How do their APIs compare?

About novicezk/midjourney-proxy · 2 messages · last activity 9/7/2026

Question

How do their APIs compare?

RepoPilot

Since both retrieved sets are quite different in nature (one is a single API-driven service, the other a collection of independent Spring Boot demo modules), here's how their "APIs" compare based on what's in the repository data:

novicezk/midjourney-proxy — a purpose-built REST API

This repo exposes a coherent HTTP API for driving MidJourney via Discord, built around a submission/result model:

  • Submission DTOs: Requests are modeled as typed DTOs, e.g. SubmitImagineDTO for the Imagine command [src/main/java/com/github/novicezk/midjourney/dto/SubmitImagineDTO.java:L1-L13], SubmitDescribeDTO for Describe [src/main/java/com/github/novicezk/midjourney/dto/SubmitDescribeDTO.java:L1-L10], and SubmitSimpleChangeDTO for variation/change actions [src/main/java/com/github/novicezk/midjourney/dto/SubmitSimpleChangeDTO.java:L1-L11]. Each uses Swagger annotations (@ApiModel) for API documentation and Lombok's @Data/@EqualsAndHashCode for boilerplate.
  • Uniform response envelope: All submissions return a SubmitResultVO with a status code (1=submitted, 21=already exists, 22=queued, other=error), a description, a task ID (result), and an extensible properties map for additional fields [src/main/java/com/github/novicezk/midjourney/result/SubmitResultVO.java:L12-L63]. This gives the API a consistent, predictable shape across all endpoints.
  • Auth: Access is gated by an interceptor, ApiAuthorizeInterceptor, which checks the mj.api-secret header per the README's configuration section [src/main/java/com/github/novicezk/midjourney/support/ApiAuthorizeInterceptor.java:L1-L15].
  • Real-time backing: Behind the HTTP API sits a Discord WebSocket integration (SpringUserWebSocketStarter, SpringWebSocketHandler) that maintains the account connection, handles heartbeats/reconnects, and dispatches gateway events like READY/RESUMED back into task processing [src/main/java/com/github/novicezk/midjourney/wss/user/SpringUserWebSocketStarter.java:L105-L184, src/main/java/com/github/novicezk/midjourney/wss/user/SpringWebSocketHandler.java:L114-L153].

So this is a single, cohesive external-facing API surface: submit a task, poll/receive a task ID and status, with the Discord protocol details hidden behind it.

wuyouzhuguli/springall — many small, independent demo APIs

This repo isn't one API; it's a set of ~40 numbered standalone Spring Boot modules, each demonstrating one technology in isolation. The retrieved examples show simple, module-specific endpoints rather than a unified interface:

  • 08.Spring-Boot-Thymeleaf's IndexController exposes a single /account endpoint that just populates a model with hardcoded Account objects for view rendering [08.Spring-Boot-Thymeleaf/src/main/java/com/springboot/controller/IndexController.java:L13-L26] — this is server-side page rendering, not a JSON API.
  • Other modules (09.Spring-Boot-Redis-Cache, 10.Spring-Boot-Ehcache-Cache) don't expose HTTP endpoints in the retrieved code at all — they're tested via JUnit (ApplicationTest) calling a StudentService directly, showing caching behavior rather than API design [09.Spring-Boot-Redis-Cache/src/main/java/com/springboot/ApplicationTest.java:L14-L40, 10.Spring-Boot-Ehcache-Cache/src/main/java/com/springboot/ApplicationTest.java:L15-L43].
  • 11.Spring-Boot-Shiro-Authentication configures URL-based access rules (/css/** anon, /** authc) via ShiroConfig, showing how each module bolts on cross-cutting concerns like security independently [11.Spring-Boot-Shiro-Authentication/src/main/java/com/springboot/config/ShiroConfig.java:L14-L54].
  • Utility

Want to ask your own question?

Open chat for novicezk/midjourney-proxy

Public Q&A. Generated by RepoPilot from the actual source of novicezk/midjourney-proxy. AI answers can be incomplete or stale — verify before relying on them.