Skip to content

AZDevHub/wsadmin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IBM i Web Services Admin REST API

A RESTful API servlet for managing IBM i Web Services servers and services.

Overview

This project provides a modern REST API interface to the IBM Web Services Administration Script Processor (iwsadmin.jar), with interactive Scalar API documentation.

Features

  • ✅ RESTful API design (proper HTTP methods)
  • ✅ JSON responses
  • ✅ OpenAPI 3.0 specification
  • ✅ Interactive Scalar API documentation
  • ✅ Java 21 LTS

Requirements

  • Java 21 or later
  • Maven 3.8+
  • IBM i Web Services JARs:
    • iwsadmin.jar - Web Services Admin Scripts
    • iasadmin.jar - IAS Admin Library

Project Structure

wsadmin/
├── pom.xml
├── lib/
│   ├── iwsadmin.jar
│   └── iasadmin.jar
└── src/main/
    ├── java/com/ibm/systemi/iws/servlet/
    │   ├── RestApiServlet.java       # REST API
    │   └── ScriptProcessorServlet.java  # Legacy script interface
    └── webapp/
        ├── index.html                # Scalar API docs
        ├── openapi.json              # OpenAPI spec
        └── WEB-INF/web.xml

Building

# Set Java 21
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64

# Build
mvn clean package

# WAR file: target/wsadmin.war

Running Locally

JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64 mvn jetty:run

# Access at: http://localhost:8080/wsadmin/

REST API Endpoints

Servers

Method Endpoint Description
GET /api/servers List all servers
GET /api/servers/{name} Get server details
POST /api/servers?name={name} Create a server
DELETE /api/servers/{name} Delete a server
POST /api/servers/{name}/start Start a server
POST /api/servers/{name}/stop Stop a server

Services

Method Endpoint Description
GET /api/servers/{server}/services List services
GET /api/servers/{server}/services/{name} Get service details
POST /api/servers/{server}/services?name={n}&pcml={p} Install service
DELETE /api/servers/{server}/services/{name} Uninstall service
POST /api/servers/{server}/services/{name}/start Start service
POST /api/servers/{server}/services/{name}/stop Stop service

Examples

List all servers

curl http://localhost:8080/wsadmin/api/servers

Get server details

curl http://localhost:8080/wsadmin/api/servers/MYSERVER

Start a server

curl -X POST http://localhost:8080/wsadmin/api/servers/MYSERVER/start

List services on a server

curl http://localhost:8080/wsadmin/api/servers/MYSERVER/services

Install a web service

curl -X POST "http://localhost:8080/wsadmin/api/servers/MYSERVER/services?name=MyService&pcml=/path/to/file.pcml"

Start a service

curl -X POST http://localhost:8080/wsadmin/api/servers/MYSERVER/services/MyService/start

Stop and uninstall a service

curl -X POST http://localhost:8080/wsadmin/api/servers/MYSERVER/services/MyService/stop
curl -X DELETE http://localhost:8080/wsadmin/api/servers/MYSERVER/services/MyService

Response Format

All responses are JSON:

{
  "success": true,
  "server": "MYSERVER",
  "count": 3,
  "servers": [
    {"name": "SERVER1"},
    {"name": "SERVER2"},
    {"name": "SERVER3"}
  ],
  "raw": "... original command output ..."
}

API Documentation

Interactive API documentation is available at the root URL using Scalar.

Access: http://localhost:8080/wsadmin/

Deployment

Deploy target/wsadmin.war to any Jakarta EE 10 compatible server:

  • Open Liberty
  • WildFly
  • Tomcat 10+
  • Jetty 11+

License

This project wraps IBM proprietary libraries. Use in accordance with IBM licensing terms.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published